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