PROBLEMS revision 18099
118099SpstThis file describes various problems that have been encountered in
218099Spstcompiling, installing and running groff.  Suggestions for additions or
318099Spstother improvements to this file are welcome.
418099Spst
518099Spst* I get lots of `numeric overflow' error messages whenever I run
618099Spstgroff; I compiled groff with AT&T C++ 2.0 with an ANSI C compiler.
718099Spst
818099SpstMake sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level
918099SpstMakefile.  If that doesn't solve the problem, define INT_MIN as
1018099Spst-INT_MAX in libgroff/lib.h.
1118099Spst
1218099Spst* I get errors when I try to compile groff with Sun C++ version 3 or
1318099Spstearlier.
1418099Spst
1518099SpstGroff requires header files that are moderately compatible with AT&T
1618099SpstC++ and ANSI C.  With some versions of Sun C++, the supplied header
1718099Spstfiles need some of the following changes to meet this requirement:
1818099Spst<string.h> must declare the mem* functions, (just add `#include
1918099Spst<memory.h>' to <string.h>); the first argument to fopen and freopen
2018099Spstshould be declared as `const char *'; the first argument to fread
2118099Spstshould be declared as `void *'; the first argument to fwrite should be
2218099Spstdeclared as `const void *'; malloc should be declared to return `void
2318099Spst*'; in <alloca.h>, the declaration `extern "C" { void
2418099Spst*__builtin_alloca(int); }' should be added; declarations of getopt(),
2518099Spstoptarg, optind and opterr should be added to <stdlib.h>; in
2618099Spst<sys/signal.h> the return type and the second argument type of
2718099Spstsignal() should be changed to be `void (*)(int)'.
2818099Spst
2918099SpstYou can either change them in place, or copy them to some other
3018099Spstdirectory and include that directory with a -I option.
3118099Spst
3218099Spst* I get errors when I try to compile groff with DEC C++.
3318099Spst
3418099SpstFix the declaration of write() in <unistd.h> so that the second
3518099Spstargument is a const char *.  Fix the declaration of open() in
3618099Spst<sys/file.h> so that the first argument is a const char *.
3718099Spst
3818099Spst* On Ultrix, the make stops with the message
3918099Spst
4018099Spst  *** Error code 1
4118099Spst
4218099Spst  Stop.
4318099Spst
4418099Spstfor no apparent reason.
4518099Spst
4618099SpstUse GNU make.
4718099Spst
4818099Spst* I'm having problems compiling groff on 386BSD 0.1.
4918099Spst
5018099SpstIf you're using ash as /bin/sh, you'll need the following patch.
5118099Spst
5218099Spst*** gendef.sh.org	Sun Jun 30 13:30:36 1991
5318099Spst--- gendef.sh	Sun Feb 28 10:23:49 1993
5418099Spst***************
5518099Spst*** 3,9 ****
5618099Spst  file=$1
5718099Spst  shift
5818099Spst  
5918099Spst! defs="#define $1"
6018099Spst  shift
6118099Spst  for def
6218099Spst  do
6318099Spst--- 3,10 ----
6418099Spst  file=$1
6518099Spst  shift
6618099Spst  
6718099Spst! x=$1
6818099Spst! defs="#define $x"
6918099Spst  shift
7018099Spst  for def
7118099Spst  do
7218099Spst
7318099SpstYou'll also need to change dirnamemax.c so that it doesn't use
7418099Spstpathconf().
7518099Spst
7618099Spst* While compiling on Xenix, ranlib libgroff.a fails.
7718099Spst
7818099SpstThe system ranlib can't handle externals longer than 40 characters.
7918099SpstUse the ranlib included in demon.co.uk:/pub/xenix/g++-1.40.3a.v1
8018099Spstinstead.
8118099Spst
8218099Spst* Groff can't handle my troff document. It works fine with AT&T troff.
8318099Spst
8418099SpstRead the section on incompatibilities in gtroff(1).  Try using the -C
8518099Spstoption.  Alternatively there's the sed script in tmac/fixmacros.sed
8618099Spstwhich will attempt to edit a file of macros so that it can be used
8718099Spstwith groff without the -C flag.
8818099Spst
8918099Spst* groff -Tdvi produces dvi files that use fonts at weird magnifications.
9018099Spst
9118099SpstYes, it does.  You may need to compile fonts with Metafont at these
9218099Spstmagnifications. The CompileFonts script in the devdvi/generate
9318099Spstdirectory may help you to do this. (It will take a *long* time.)
9418099Spst
9518099Spst* pic output is not centered horizontally; pictures sometimes run off
9618099Spstthe bottom of the page.
9718099Spst
9818099SpstThe macro package you are using is not supplying appropriate definitions
9918099Spstof PS and PE.  Give groff a -mpic option.
10018099Spst
10118099Spst* I'm having problems including PostScript illustrations using the PSPIC
10218099Spstmacro.
10318099Spst
10418099SpstA PostScript document must meet three requirements in order to be
10518099Spstincluded with the PSPIC macro: it must comply with the Adobe Document
10618099SpstStructuring Conventions; it must contain a BoundingBox line; it must
10718099Spstbe ``well-behaved''.  The BoundingBox line should be of the form:
10818099Spst
10918099Spst  %%BoundingBox: llx lly urx ury
11018099Spst
11118099Spstwhere llx, lly, urx, ury are the coordinates of the lower left x,
11218099Spstlower left y, upper right x, upper right y of the bounding box of
11318099Spstmarks on the page expressed as integers in the default PostScript
11418099Spstcoordinate system (72 units per inch, origin at bottom left corner).
11518099SpstA useful tactic is to print out the illustration by itself (you may
11618099Spstneed to add a `showpage' at the end), and physically measure the
11718099Spstbounding box.  For more detail on these requirements, read the
11818099Spstspecification of Encapsulated PostScript format.  (This is available
11918099Spstfrom the Adobe file server; send a message with a body of `help' to
12018099Spstps-file-server@adobe.com.)
12118099Spst
12218099Spst* I've configured groff for A4 paper, but gtroff still seems to think
12318099Spstthat the length of a page (as returned by \n(.p) is 11 inches.
12418099Spst
12518099SpstThis is intentional.  The PAGE option is used only by grops.  For
12618099Spstcompatibility with ditroff, the default page length in gtroff is
12718099Spstalways 11 inches.  The page length can be changed with the `pl'
12818099Spstrequest.
12918099Spst
13018099Spst* Groff doesn't use the font names I'm used to.
13118099Spst
13218099SpstUse the `ftr' request.  See gtroff(1).
13318099Spst
13418099Spst* I get errors using the Unix -ms macros with groff -e -C.
13518099Spst
13618099SpstApply this change:
13718099Spst
13818099Spst*** /usr/lib/ms/ms.eqn	Tue Apr 25 02:14:28 1989
13918099Spst--- ms.eqn	Sun Nov 11 10:33:59 1990
14018099Spst***************
14118099Spst*** 22,29 ****
14218099Spst  ..
14318099Spst  .	\" EN - end of a displayed equation
14418099Spst  .de EN
14518099Spst! .if !\\*(10 .br
14618099Spst  .di
14718099Spst  .rm EZ
14818099Spst  .nr ZN \\n(dn
14918099Spst  .if \\n(ZN>0 .if \\n(YE=0 .LP
15018099Spst--- 22,30 ----
15118099Spst  ..
15218099Spst  .	\" EN - end of a displayed equation
15318099Spst  .de EN
15418099Spst! .if \\n(.k>0 .br
15518099Spst  .di
15618099Spst+ .ds 10 \\*(EZ\\
15718099Spst  .rm EZ
15818099Spst  .nr ZN \\n(dn
15918099Spst  .if \\n(ZN>0 .if \\n(YE=0 .LP
16018099Spst
16118099Spst
16218099Spst* gpic doesn't accept the syntax `chop N M' for chopping both ends of a
16318099Spstline.
16418099Spst
16518099SpstThe correct syntax is `chop N chop M'.
16618099Spst
16718099Spst* With gpic -t, when I print `line ->; box' using a dvi to ps
16818099Spstprogram, the arrow head sticks through into the inside of the box.
16918099Spst
17018099SpstThe dvi to ps program should be modified to set the line cap and
17118099Spstline join parameters to 1 while printing tpic specials.
17218099Spst
17318099Spst* When I print the output groff -Tps, the output is always shifted up
17418099Spstby about 0.7 inches; I'm using 8.5x11 inch paper.
17518099Spst
17618099SpstMake sure that PAGE is defined to be `letter' in the top-level
17718099SpstMakefile.
17818099Spst
17918099Spst* When I try to print the output of groff -Tps, I get no output at all
18018099Spstfrom the printer, and the log file shows the error
18118099Spst%%[ error: undefined; offendingcommand: BP ]%%
18218099SpstI using TranScript spooling software.
18318099Spst
18418099SpstThis is a bug in the page reversal filter in early versions of
18518099SpstTranScript.  Change the `broken' parameter in
18618099Spst/usr/local/lib/groff/font/devps/DESC to 7.
18718099Spst
18818099Spst* When I preview groff -Tps output using the Sun OpenWindows 2.0 pageview
18918099Spstprogram, all the pages are displayed on top of each other.
19018099Spst
19118099SpstThis is a defect in pageview.  Change the `broken' parameter in
19218099Spst/usr/local/lib/groff/font/devps/DESC to 2.
19318099Spst
19418099Spst* With groff -TX75, -TX100or -X, I can only view the first page.
19518099Spst
19618099SpstThe left mouse button brings up a menu that allows you to view other
19718099Spstpages.
19818099Spst
19918099Spst* When I print the output of groff -Tdvi, I just get a black dot in
20018099Spstupper left corner.
20118099Spst
20218099SpstSome dvi drivers (notably early versions of xtex) do not correctly
20318099Spsthandle dvi files that use a resolution different from that used by dvi
20418099Spstfiles produced by TeX.  Try getting a more up to date driver.
20518099Spst
20618099Spst* I get lots of errors when I use groff with the AT&T -mm macros.
20718099Spst
20818099SpstThe AT&T -mm macros need a few changes to work with groff; `make
20918099Spstinstall.dwbmm' will copy your -mm macros to groff's macro directory
21018099Spstand make the necessary changes.  You may need to edit the commands for
21118099Spstthe install.mm target in the Makefile.  Alternatively use the groff
21218099Spst-mm macros.
21318099Spst
21418099Spst* gtroff doesn't understand lines like `.ce99' with no space between
21518099Spstthe name of the request or macro and the arguments.
21618099Spst
21718099SpstGtroff requires a space between macro or request and its arguments
21818099Spstbecause it allows the use of long names for macros and requests.  You
21918099Spstcan use the -C option or the `cp' request to put gtroff into a
22018099Spstcompatibility mode in which it is not possible to use long names for
22118099Spstmacros but in which no space is required between macros and their
22218099Spstarguments.  The use of compatibility mode is strongly discouraged.
22318099Spst
22418099Spst* gtroff gives warnings about lines like
22518099Spst  .ev	\" a comment
22618099Spst(with a tab after the .ev).
22718099Spst
22818099SpstA tab character cannot be used as a substitute for a space character
22918099Spst(except in one case: between a control character at the beginning of a
23018099Spstline and the name of a macro or request).  For example, in Unix troff
23118099Spst  .ps	\" restore the previous point size
23218099Spst(with a tab after the .ps) will NOT restore the previous point-size;
23318099Spstinstead it will be silently ignored.  Since this is very likely to be
23418099Spstan error, gtroff can give a warning about it.  If you want to align
23518099Spstcomments, you can do it like this:
23618099Spst  .ev\"				\" a comment
23718099Spst
23818099Spst* I don't like the page headers and footers produced by groff -man.
23918099Spst
24018099SpstThere seem to be many different styles of page header and footer
24118099Spstproduced by different versions of the -man macros.  You will need to
24218099Spstmodify macros/tmac.an to suit your personal taste.  For example, if
24318099Spstyou want the center of the page header to say
24418099Spst  UNIX Programmer's Manual
24518099Spstyou will need to change the line
24618099Spst  .el .ds an-extra3 \"UNIX Programmer's Manual
24718099Spstto
24818099Spst  .el .ds an-extra3 UNIX Programmer's Manual
24918099Spst
25018099Spst* While formatting a manual page, groff complains about not being able to
25118099Spstbreak lines.  The problem seems to be caused by a line like:
25218099Spst  .TP \w'label'+2
25318099Spst
25418099SpstThe -man documentation says that the default scale indicator for TP
25518099Spstmacro is `n'.  The groff -man macros implement this correctly, so that
25618099Spstthe argument will be evaluated as if it were
25718099Spst  \w'label'n+2n
25818099SpstThe Unix -man macros don't implement this correctly (probably because
25918099Spstit's hard to do in Unix troff); they just append `n' to the entire
26018099Spstargument, so that it will be evaluated as if it were
26118099Spst  \w'label'u+2n
26218099SpstThe solution is to fix the manual page:
26318099Spst  .TP \w'label'u+2
26418099Spst
26518099Spst* I'm having problems formatting Ultrix man pages with groff -man.
26618099Spst
26718099SpstThe Ultrix man pages use a number of non-standard extensions to the
26818099SpstUnix man macros.  One solution is to use the Ultrix -man macros with
26918099Spstgroff.  Rename /usr/local/lib/groff/tmac/tmac.an to
27018099Spst/usr/local/lib/groff/tmac/tmac.an.gnu, copy /usr/lib/tmac/tmac.an to
27118099Spst/usr/local/lib/groff/tmac/tmac.an and apply the following patch (from
27218099SpstFrank Wortner):
27318099Spst
27418099Spst*** /usr/local/lib/groff/tmac/tmac.an     Wed Sep  9 12:29:28 1992
27518099Spst--- /usr/lib/tmac/tmac.an       Fri Jul 24 19:58:19 1992
27618099Spst***************
27718099Spst*** 489,495 ****
27818099Spst  .     \" make special case of shift out of italic
27918099Spst  .de }S
28018099Spst  .ds ]F
28118099Spst! .if \\$12 .if !\\$5 .ds ]F \^
28218099Spst  .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
28318099Spst  .el \\$3
28418099Spst  .}f
28518099Spst--- 489,495 ----
28618099Spst  .     \" make special case of shift out of italic
28718099Spst  .de }S
28818099Spst  .ds ]F
28918099Spst! .if \\$12 .if !\\$5 .ds ]F\^
29018099Spst  .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
29118099Spst  .el \\$3
29218099Spst  .}f
29318099Spst
29418099SpstAnother possible solution is to install tmac/man.ultrix as
29518099Spst/usr/local/lib/groff/tmac/man.local.
29618099Spst
29718099Spst* I'm having problems formatting HP-UX 9.0 man pages with groff -man.
29818099Spst
29918099SpstRename /usr/local/lib/groff/tmac/tmac.an to (for example)
30018099Spst/usr/local/lib/groff/tmac/tmac.gan, copy HP's tmac.an into
30118099Spst/usr/local/lib/groff/tmac/tmac.an, and either put `.cp 1' at the
30218099Spstbeginning or filter it (and any files it .so's) through
30318099Spsttmac/fixmacros.sed.
30418099Spst
30518099Spst* I'm having problems formatting man pages produced by the perl
30618099Spstwrapman script.
30718099Spst
30818099SpstSome versions of wrapman have a superfluous blank line before the .TH
30918099Spstline.  This must be deleted.  Then either use groff -C, or apply the
31018099Spstfollowing patch:
31118099Spst
31218099Spst*** wrapman.~2~	Sun Jan 19 12:10:24 1992
31318099Spst--- wrapman	Tue Aug 10 02:06:41 1993
31418099Spst***************
31518099Spst*** 35,41 ****
31618099Spst      $line1 .= <IN> if $line1 =~ /eval/;
31718099Spst      $line1 .= <IN> if $line1 =~ /argv/;
31818099Spst      $line2 = <IN>;
31918099Spst!     next if $line2 eq "'di';\n";
32018099Spst  
32118099Spst      # Pull the old switcheroo.
32218099Spst  
32318099Spst--- 35,41 ----
32418099Spst      $line1 .= <IN> if $line1 =~ /eval/;
32518099Spst      $line1 .= <IN> if $line1 =~ /argv/;
32618099Spst      $line2 = <IN>;
32718099Spst!     next if $line2 eq "'di ';\n" || $line2 eq "'di';\n";
32818099Spst  
32918099Spst      # Pull the old switcheroo.
33018099Spst  
33118099Spst***************
33218099Spst*** 49,56 ****
33318099Spst  
33418099Spst      print OUT $line1;
33518099Spst      print OUT <<EOF;
33618099Spst! 'di';
33718099Spst! 'ig00';
33818099Spst  #
33918099Spst  # $header
34018099Spst  #
34118099Spst--- 49,58 ----
34218099Spst  
34318099Spst      print OUT $line1;
34418099Spst      print OUT <<EOF;
34518099Spst! 'di ';
34618099Spst! 'ds 00 \\"';
34718099Spst! 'eo ';
34818099Spst! 'ig 00 ';
34918099Spst  #
35018099Spst  # $header
35118099Spst  #
35218099Spst***************
35318099Spst*** 72,85 ****
35418099Spst  
35518099Spst      # These next few lines are legal in both Perl and nroff.
35618099Spst  
35718099Spst! $null.00;                       # finish .ig
35818099Spst   
35918099Spst  'di           \\" finish diversion--previous line must be blank
36018099Spst  .nr nl 0-1    \\" fake up transition to first page again
36118099Spst  .nr % 0         \\" start at page 1
36218099Spst! '; __END__ ##### From here on it's a standard manual page #####
36318099Spst  .TH $PROG 1 "$month $mday, 19$year"
36418099Spst- .AT 3
36518099Spst  .SH NAME
36618099Spst  $prog \\- whatever
36718099Spst  .SH SYNOPSIS
36818099Spst--- 74,87 ----
36918099Spst  
37018099Spst      # These next few lines are legal in both Perl and nroff.
37118099Spst  
37218099Spst! $null.00 ;                      # finish .ig
37318099Spst! 'ec \\';
37418099Spst   
37518099Spst  'di           \\" finish diversion--previous line must be blank
37618099Spst  .nr nl 0-1    \\" fake up transition to first page again
37718099Spst  .nr % 0         \\" start at page 1
37818099Spst! .\\"'; __END__ ##### From here on it's a standard manual page #####
37918099Spst  .TH $PROG 1 "$month $mday, 19$year"
38018099Spst  .SH NAME
38118099Spst  $prog \\- whatever
38218099Spst  .SH SYNOPSIS
38318099Spst
38418099Spst
38518099Spst* When I preview documents using -TX75 or -TX100, the layout is not the same
38618099Spstas when I print the document with -Tps: the line and page breaks come
38718099Spstin different places.
38818099Spst
38918099SpstUse groff -X -Tps.
39018099Spst
39118099Spst* When I try to run gxditview, I get the error:
39218099SpstError: Widget viewport has zero width and/or height
39318099Spst
39418099SpstThis error means you haven't correctly installed the application
39518099Spstdefaults file, GXditview.ad; ``make install'' does this for you
39618099Spstautomatically, so either you didn't do ``make install'', or you don't
39718099Spsthave imake configured correctly.
39818099Spst
39918099Spst* groff uses up an enormous amount of memory processing large files.
40018099SpstI'm using 386BSD 0.1.
40118099Spst
40218099Spst386BSD includes an old version of g++, 1.39, which has a bug that
40318099Spstcauses a major memory leak in gtroff.  Apply the following fix to g++
40418099Spstand recompile groff:
40518099Spst
40618099Spst*** cplus-decl.c.~1~	Mon Aug  6 05:28:59 1990
40718099Spst--- cplus-decl.c	Wed Jun  5 08:55:04 1991
40818099Spst***************
40918099Spst*** 7951,7961 ****
41018099Spst  
41118099Spst        /* At the end, call delete if that's what's requested.  */
41218099Spst        if (TREE_GETS_DELETE (current_class_type))
41318099Spst  	exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node),
41418099Spst  				      get_identifier (OPERATOR_DELETE_FORMAT),
41518099Spst! 				      build_tree_list (NULL_TREE, integer_zero_node),
41618099Spst  				      NULL_TREE, LOOKUP_NORMAL);
41718099Spst        else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
41818099Spst  	exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0);
41918099Spst        else
42018099Spst  	exprstmt = 0;
42118099Spst--- 7951,7961 ----
42218099Spst  
42318099Spst        /* At the end, call delete if that's what's requested.  */
42418099Spst        if (TREE_GETS_DELETE (current_class_type))
42518099Spst  	exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node),
42618099Spst  				      get_identifier (OPERATOR_DELETE_FORMAT),
42718099Spst! 				      build_tree_list (NULL_TREE, current_class_decl),
42818099Spst  				      NULL_TREE, LOOKUP_NORMAL);
42918099Spst        else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type))
43018099Spst  	exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0);
43118099Spst        else
43218099Spst  	exprstmt = 0;
43318099Spst
43418099Spst* Where can I get grap?
43518099Spst
43618099SpstGrap is not freely available, but there is a nawk script implementing
43718099Spstan extended subset of grap available for ftp as
43818099Spstftp.informatik.uni-rostock.de:/pub/local/software/prag-1.0.shar.gz.
43918099Spst
44018099Spst* How can I use groff with an old LaserJet printer that doesn't work
44118099Spstwith groff -Tlj4?
44218099Spst
44318099SpstYou have at least 3 options:
44418099Spst
44518099Spst- use groff -Tps with GNU Ghostscript;
44618099Spst
44718099Spst- use groff -Tdvi with a TeX .dvi to Laserjet driver;
44818099Spst
44918099Spst- use groff with the LaserJet driver in Chris Lewis' psroff package
45018099Spst(available for ftp from:
45118099Spstftp.uunet.ca:/distrib/chris_lewis/psroff3.0pl17).
45218099Spst
45318099Spst* Groff seems to generate level 3 Postscript, but my printer is only a
45418099Spstlevel 1 or 2 PostScript printer.
45518099Spst
45618099SpstIn fact groff generates only level 1 PostScript.  The `%!PS-Adobe-3.0'
45718099Spstcomment at the beginning of PostScript output generated by groff
45818099Spstindicates that the file conforms to version 3.0 of the Adobe Document
45918099SpstStructuring Conventions.  The output generated by groff should be
46018099Spstprintable on any PostScript printer.  Problems with groff output's not
46118099Spstprinting are most often caused by the spooling system.
46218099Spst
46318099Spst* The \n(st and \n(sb registers don't seem to work.  I thought \w set
46418099Spstthem to the height and depth of its argument, but the registers always
46518099Spstseem to be 0.
46618099Spst
46718099Spst\n(st and \n(sb aren't supposed to give the height and depth of the
46818099Spststring rather they give the minimum and maximum vertical displacement
46918099Spstof the baseline.  For example for \v'2u'\v'-3u', \n(st will be 1 and
47018099Spst\n(sb will be -2.  The height and depth of the string is available in
47118099Spstthe \n[rst] and \n[rsb] registers: these are groff extensions.
47218099Spst
47318099Spst* On an SGI system, how can I make the man command use groff?
47418099Spst
47518099SpstFrom David Hinds <dhinds@allegro.stanford.edu> (some of these steps
47618099Spstare unnecessary if you install with the `g' Makefile variable defined
47718099Spstas empty):
47818099Spst
47918099SpstCreate a script called 'eqn':
48018099Spst
48118099Spst > #!/bin/sh
48218099Spst > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi
48318099Spst > geqn $*
48418099Spst
48518099Spstand a script called 'neqn':
48618099Spst
48718099Spst > #!/bin/sh
48818099Spst > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi
48918099Spst > geqn -Tascii $*
49018099Spst
49118099Spstand do:
49218099Spst
49318099Spst > ln -s gnroff nroff
49418099Spst
49518099Spstand edit the end of the gnroff script to be:
49618099Spst
49718099Spst > rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'`
49818099Spst > exec groff -Wall -mtty-char $T $opts $rest
49918099Spst
50018099SpstTo get PostScript output from 'man -t', you also need to create a
50118099Spst'psroff' script similar to 'nroff'.  Here are the context diffs:
50218099Spst
50318099Spst*** /usr/local/bin/nroff        Sat Feb 13 15:51:09 1993
50418099Spst--- /usr/local/bin/psroff       Sat Feb 13 17:45:46 1993
50518099Spst***************
50618099Spst*** 1,8 ****
50718099Spst  #!/bin/sh
50818099Spst! # Emulate nroff with groff.
50918099Spst
51018099Spst  prog="$0"
51118099Spst! T=-Tascii
51218099Spst  opts=
51318099Spst
51418099Spst  for i
51518099Spst--- 1,8 ----
51618099Spst  #!/bin/sh
51718099Spst! # Emulate psroff with groff.
51818099Spst
51918099Spst  prog="$0"
52018099Spst! T=-Tps
52118099Spst  opts=
52218099Spst
52318099Spst  for i
52418099Spst***************
52518099Spst*** 25,30 ****
52618099Spst--- 25,33 ----
52718099Spst        -Tascii|-Tlatin1)
52818099Spst                T=$1
52918099Spst                ;;
53018099Spst+       -t)
53118099Spst+               # ignore -- default is send to stdout
53218099Spst+               ;;
53318099Spst        -T*)
53418099Spst                # ignore other devices
53518099Spst                ;;
53618099Spst***************
53718099Spst*** 49,53 ****
53818099Spst  rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'`
53918099Spst
54018099Spst  # This shell script is intended for use with man, so warnings are
54118099Spst  # probably not wanted.  Also load nroff-style character definitions.
54218099Spst! exec groff -Wall -mtty-char $T $opts $rest
54318099Spst--- 52,56 ----
54418099Spst  rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'`
54518099Spst
54618099Spst  # This shell script is intended for use with man, so warnings are
54718099Spst! # probably not wanted.
54818099Spst! exec groff -Wall $T $opts $rest
549