PROBLEMS revision 69626
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 569626Sru---------------------------------------------------------------------- 669626Sru 769626Sru* My document says that the current year is 19100, not 2000. 869626Sru 969626SruIn groff, as in traditional troff, the yr number register yields the 1069626Sruyear minus 1900. Unfortunately, there is a longstanding bug in the 1169626SruTroff User's Manual <http://cm.bell-labs.com/cm/cs/cstr/54.ps.gz>, 1269626Sruwhich incorrectly claims that yr is the last two digits of the year. 1369626SruThis claim was never true of either Unix troff or of groff. 1469626Sru 1569626SruIf your text looks like this: 1669626Sru 1769626Sru .\" Wrong: 1869626Sru This document was formatted in 19\n(yr. 1969626Sru 2069626Sruyou can correct it as follows: 2169626Sru 2269626Sru This document was formatted in \n[year]. 2369626Sru 2469626Sruor, if you want to be portable to older troff versions, as follows: 2569626Sru 2669626Sru .nr y4 1900+\n(yr 2769626Sru This document was formatted in \n(y4. 2869626Sru 2969626Sru---------------------------------------------------------------------- 3069626Sru 3118099Spst* I get lots of `numeric overflow' error messages whenever I run 3269626Sru groff; I compiled groff with AT&T C++ 2.0 with an ANSI C compiler. 3318099Spst 3418099SpstMake sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level 3518099SpstMakefile. If that doesn't solve the problem, define INT_MIN as 3618099Spst-INT_MAX in libgroff/lib.h. 3718099Spst 3869626Sru---------------------------------------------------------------------- 3955839Sasmodai 4069626Sru* I get errors when I try to compile groff with Sun C++ version 5.0 4169626Sru or 5.1. 4269626Sru 4355839SasmodaiThis is a known problem; see Sun bug #4301919. As of this writing, no 4455839Sasmodaipatch is available. Use GCC 2.95.2 or later instead. 4555839Sasmodai 4669626Sru---------------------------------------------------------------------- 4769626Sru 4818099Spst* I get errors when I try to compile groff with Sun C++ version 3 or 4969626Sru earlier. 5018099Spst 5118099SpstGroff requires header files that are moderately compatible with AT&T 5218099SpstC++ and ANSI C. With some versions of Sun C++, the supplied header 5318099Spstfiles need some of the following changes to meet this requirement: 5418099Spst<string.h> must declare the mem* functions, (just add `#include 5518099Spst<memory.h>' to <string.h>); the first argument to fopen and freopen 5618099Spstshould be declared as `const char *'; the first argument to fread 5718099Spstshould be declared as `void *'; the first argument to fwrite should be 5869626Srudeclared as `const void *'; malloc should be declared to return 5969626Sru`void *'; in <alloca.h>, the declaration `extern "C" { void 6069626Sru*__builtin_alloca(int); }' should be added; in <sys/signal.h> the 6169626Srureturn type and the second argument type of signal() should be changed 6269626Sruto be `void (*)(int)'. 6318099Spst 6418099SpstYou can either change them in place, or copy them to some other 6518099Spstdirectory and include that directory with a -I option. 6618099Spst 6769626Sru---------------------------------------------------------------------- 6869626Sru 6969626Sru* The configure script fails on OS/390 Unix. 7069626Sru 7169626SruThere is a bug in the Language Environment (LE) whereby the test 7269626Sruprogram for static destructors fails. You will see the message 7369626Sru'configure: error: a working C++ compiler is required' 7469626Sru 7569626SruApplying PTF UQ42006 is supposed to fix this, but the test program is 7669626Srustill returning the wrong value (1). To work around this problem, you 7769626Srucan comment out the following in the configure script (near line 956). 7869626SruThis will effectively bypass the test (static constructors and 7969626Srudestructors do actually work properly): 8069626Sru 8169626Sru#if { (eval echo configure:957: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null 8269626Sru#then 8369626Sru echo "$ac_t""yes" 1>&6 8469626Sru#else 8569626Sru# echo "configure: failed program was:" >&5 8669626Sru# cat conftest.$ac_ext >&5 8769626Sru# rm -fr conftest* 8869626Sru# echo "$ac_t""no" 1>&6;{ echo "configure: error: a working C++ compiler is required" 1>&2; exit 1; } 8969626Sru#fi 9069626Sru 9169626Sru---------------------------------------------------------------------- 9269626Sru 9318099Spst* I get errors when I try to compile groff with DEC C++. 9418099Spst 9518099SpstFix the declaration of write() in <unistd.h> so that the second 9618099Spstargument is a const char *. Fix the declaration of open() in 9718099Spst<sys/file.h> so that the first argument is a const char *. 9818099Spst 9969626Sru---------------------------------------------------------------------- 10069626Sru 10169626Sru* On a host using Unix make (e.g. Solaris), if you are compiling for 10269626Sru multiple architectures by building in a subdirectory, the make stops 10369626Sru with a message like this: 10469626Sru 10569626Sru make: Fatal error: Don't know how to make target `assert.o' 10669626Sru 10769626Sru or like this: 10869626Sru 10969626Sru make: Fatal error: Can't find /u/src/groff/src/include/Makefile.sub': No such file or directory 11069626Sru 11169626SruThis occurs because GNU make and Unix make handle VPATH differently, 11269626Sruand the groff build relies on GNU make's VPATH handling. 11369626Sru 11469626SruUse GNU make to work around the problem. In Solaris 8, GNU make is 11569626Sruon the Software Companion CD and is installed as /opt/sfw/bin/gmake. 11669626Sru 11769626Sru---------------------------------------------------------------------- 11869626Sru 11918099Spst* On Ultrix, the make stops with the message 12018099Spst 12118099Spst *** Error code 1 12218099Spst 12318099Spst Stop. 12418099Spst 12518099Spstfor no apparent reason. 12618099Spst 12718099SpstUse GNU make. 12818099Spst 12969626Sru---------------------------------------------------------------------- 13069626Sru 13118099Spst* I'm having problems compiling groff on 386BSD 0.1. 13218099Spst 13318099SpstIf you're using ash as /bin/sh, you'll need the following patch. 13418099Spst 13518099Spst*** gendef.sh.org Sun Jun 30 13:30:36 1991 13618099Spst--- gendef.sh Sun Feb 28 10:23:49 1993 13718099Spst*************** 13818099Spst*** 3,9 **** 13918099Spst file=$1 14018099Spst shift 14118099Spst 14218099Spst! defs="#define $1" 14318099Spst shift 14418099Spst for def 14518099Spst do 14618099Spst--- 3,10 ---- 14718099Spst file=$1 14818099Spst shift 14918099Spst 15018099Spst! x=$1 15118099Spst! defs="#define $x" 15218099Spst shift 15318099Spst for def 15418099Spst do 15518099Spst 15618099SpstYou'll also need to change dirnamemax.c so that it doesn't use 15718099Spstpathconf(). 15818099Spst 15969626Sru---------------------------------------------------------------------- 16069626Sru 16118099Spst* While compiling on Xenix, ranlib libgroff.a fails. 16218099Spst 16318099SpstThe system ranlib can't handle externals longer than 40 characters. 16418099SpstUse the ranlib included in demon.co.uk:/pub/xenix/g++-1.40.3a.v1 16518099Spstinstead. 16618099Spst 16769626Sru---------------------------------------------------------------------- 16869626Sru 16969626Sru* There are many empty `Makefile.dep' files. Is this a bug? 17069626Sru 17169626SruNo. Real dependency files are created with a `make depend' call. 17269626Sru 17369626Sru---------------------------------------------------------------------- 17469626Sru 17518099Spst* Groff can't handle my troff document. It works fine with AT&T troff. 17618099Spst 17718099SpstRead the section on incompatibilities in gtroff(1). Try using the -C 17818099Spstoption. Alternatively there's the sed script in tmac/fixmacros.sed 17918099Spstwhich will attempt to edit a file of macros so that it can be used 18018099Spstwith groff without the -C flag. 18118099Spst 18269626Sru---------------------------------------------------------------------- 18318099Spst 18469626Sru* groff -Tdvi produces dvi files that use fonts at weird 18569626Sru magnifications. 18669626Sru 18718099SpstYes, it does. You may need to compile fonts with Metafont at these 18869626Srumagnifications. The CompileFonts script in the devdvi/generate 18969626Srudirectory may help you to do this. (It will take a *long* time.) 19018099Spst 19169626Sru---------------------------------------------------------------------- 19269626Sru 19318099Spst* pic output is not centered horizontally; pictures sometimes run off 19469626Sru the bottom of the page. 19518099Spst 19669626SruThe macro package you are using is not supplying appropriate 19769626Srudefinitions of PS and PE. Give groff a -mpic option. 19818099Spst 19969626Sru---------------------------------------------------------------------- 20018099Spst 20169626Sru* I'm having problems including PostScript illustrations using the 20269626Sru PSPIC macro. 20369626Sru 20418099SpstA PostScript document must meet three requirements in order to be 20518099Spstincluded with the PSPIC macro: it must comply with the Adobe Document 20618099SpstStructuring Conventions; it must contain a BoundingBox line; it must 20718099Spstbe ``well-behaved''. The BoundingBox line should be of the form: 20818099Spst 20918099Spst %%BoundingBox: llx lly urx ury 21018099Spst 21118099Spstwhere llx, lly, urx, ury are the coordinates of the lower left x, 21218099Spstlower left y, upper right x, upper right y of the bounding box of 21318099Spstmarks on the page expressed as integers in the default PostScript 21418099Spstcoordinate system (72 units per inch, origin at bottom left corner). 21518099SpstA useful tactic is to print out the illustration by itself (you may 21618099Spstneed to add a `showpage' at the end), and physically measure the 21718099Spstbounding box. For more detail on these requirements, read the 21818099Spstspecification of Encapsulated PostScript format. (This is available 21918099Spstfrom the Adobe file server; send a message with a body of `help' to 22018099Spstps-file-server@adobe.com.) 22118099Spst 22269626Sru---------------------------------------------------------------------- 22369626Sru 22418099Spst* I've configured groff for A4 paper, but gtroff still seems to think 22569626Sru that the length of a page (as returned by \n(.p) is 11 inches. 22618099Spst 22718099SpstThis is intentional. The PAGE option is used only by grops. For 22818099Spstcompatibility with ditroff, the default page length in gtroff is 22918099Spstalways 11 inches. The page length can be changed with the `pl' 23018099Spstrequest. 23118099Spst 23269626Sru---------------------------------------------------------------------- 23369626Sru 23418099Spst* Groff doesn't use the font names I'm used to. 23518099Spst 23618099SpstUse the `ftr' request. See gtroff(1). 23718099Spst 23869626Sru---------------------------------------------------------------------- 23969626Sru 24018099Spst* I get errors using the Unix -ms macros with groff -e -C. 24118099Spst 24218099SpstApply this change: 24318099Spst 24418099Spst*** /usr/lib/ms/ms.eqn Tue Apr 25 02:14:28 1989 24518099Spst--- ms.eqn Sun Nov 11 10:33:59 1990 24618099Spst*************** 24718099Spst*** 22,29 **** 24818099Spst .. 24918099Spst . \" EN - end of a displayed equation 25018099Spst .de EN 25118099Spst! .if !\\*(10 .br 25218099Spst .di 25318099Spst .rm EZ 25418099Spst .nr ZN \\n(dn 25518099Spst .if \\n(ZN>0 .if \\n(YE=0 .LP 25618099Spst--- 22,30 ---- 25718099Spst .. 25818099Spst . \" EN - end of a displayed equation 25918099Spst .de EN 26018099Spst! .if \\n(.k>0 .br 26118099Spst .di 26218099Spst+ .ds 10 \\*(EZ\\ 26318099Spst .rm EZ 26418099Spst .nr ZN \\n(dn 26518099Spst .if \\n(ZN>0 .if \\n(YE=0 .LP 26618099Spst 26769626Sru---------------------------------------------------------------------- 26818099Spst 26969626Sru* gpic doesn't accept the syntax `chop N M' for chopping both ends of 27069626Sru a line. 27118099Spst 27218099SpstThe correct syntax is `chop N chop M'. 27318099Spst 27469626Sru---------------------------------------------------------------------- 27518099Spst 27669626Sru* With gpic -t, when I print `line ->; box' using a dvi to ps program, 27769626Sru the arrow head sticks through into the inside of the box. 27818099Spst 27969626SruThe dvi to ps program should be modified to set the line cap and line 28069626Srujoin parameters to 1 while printing tpic specials. 28169626Sru 28269626Sru---------------------------------------------------------------------- 28369626Sru 28418099Spst* When I print the output groff -Tps, the output is always shifted up 28569626Sru by about 0.7 inches; I'm using 8.5x11 inch paper. 28618099Spst 28718099SpstMake sure that PAGE is defined to be `letter' in the top-level 28818099SpstMakefile. 28918099Spst 29069626Sru---------------------------------------------------------------------- 29169626Sru 29218099Spst* When I try to print the output of groff -Tps, I get no output at all 29369626Sru from the printer, and the log file shows the error 29469626Sru %%[ error: undefined; offendingcommand: BP ]%% 29569626Sru I'm using TranScript spooling software. 29618099Spst 29718099SpstThis is a bug in the page reversal filter in early versions of 29818099SpstTranScript. Change the `broken' parameter in 29918099Spst/usr/local/lib/groff/font/devps/DESC to 7. 30018099Spst 30169626Sru---------------------------------------------------------------------- 30218099Spst 30369626Sru* When I preview groff -Tps output using the Sun OpenWindows 2.0 30469626Sru pageview program, all the pages are displayed on top of each other. 30569626Sru 30618099SpstThis is a defect in pageview. Change the `broken' parameter in 30718099Spst/usr/local/lib/groff/font/devps/DESC to 2. 30818099Spst 30969626Sru---------------------------------------------------------------------- 31069626Sru 31155839Sasmodai* With groff -TX75, -TX100 or -X, I can only view the first page. 31218099Spst 31318099SpstThe left mouse button brings up a menu that allows you to view other 31418099Spstpages. 31518099Spst 31669626Sru---------------------------------------------------------------------- 31769626Sru 31818099Spst* When I print the output of groff -Tdvi, I just get a black dot in 31969626Sru upper left corner. 32018099Spst 32118099SpstSome dvi drivers (notably early versions of xtex) do not correctly 32218099Spsthandle dvi files that use a resolution different from that used by dvi 32318099Spstfiles produced by TeX. Try getting a more up to date driver. 32418099Spst 32569626Sru---------------------------------------------------------------------- 32669626Sru 32718099Spst* I get lots of errors when I use groff with the AT&T -mm macros. 32818099Spst 32918099SpstThe AT&T -mm macros need a few changes to work with groff; `make 33018099Spstinstall.dwbmm' will copy your -mm macros to groff's macro directory 33118099Spstand make the necessary changes. You may need to edit the commands for 33218099Spstthe install.mm target in the Makefile. Alternatively use the groff 33318099Spst-mm macros. 33418099Spst 33569626Sru---------------------------------------------------------------------- 33669626Sru 33718099Spst* gtroff doesn't understand lines like `.ce99' with no space between 33869626Sru the name of the request or macro and the arguments. 33918099Spst 34069626Srugtroff requires a space between macro or request and its arguments 34118099Spstbecause it allows the use of long names for macros and requests. You 34218099Spstcan use the -C option or the `cp' request to put gtroff into a 34318099Spstcompatibility mode in which it is not possible to use long names for 34418099Spstmacros but in which no space is required between macros and their 34518099Spstarguments. The use of compatibility mode is strongly discouraged. 34618099Spst 34769626Sru---------------------------------------------------------------------- 34869626Sru 34918099Spst* gtroff gives warnings about lines like 35018099Spst .ev \" a comment 35169626Sru (with a tab after the .ev). 35218099Spst 35318099SpstA tab character cannot be used as a substitute for a space character 35418099Spst(except in one case: between a control character at the beginning of a 35518099Spstline and the name of a macro or request). For example, in Unix troff 35669626Sru 35718099Spst .ps \" restore the previous point size 35869626Sru 35918099Spst(with a tab after the .ps) will NOT restore the previous point-size; 36018099Spstinstead it will be silently ignored. Since this is very likely to be 36118099Spstan error, gtroff can give a warning about it. If you want to align 36218099Spstcomments, you can do it like this: 36369626Sru 36418099Spst .ev\" \" a comment 36518099Spst 36669626Sru---------------------------------------------------------------------- 36769626Sru 36818099Spst* I don't like the page headers and footers produced by groff -man. 36918099Spst 37018099SpstThere seem to be many different styles of page header and footer 37118099Spstproduced by different versions of the -man macros. You will need to 37218099Spstmodify macros/tmac.an to suit your personal taste. For example, if 37318099Spstyou want the center of the page header to say 37469626Sru 37555839Sasmodai System Programmer's Manual 37669626Sru 37718099Spstyou will need to change the line 37869626Sru 37955839Sasmodai .el .ds an-extra3 \"System Programmer's Manual 38069626Sru 38118099Spstto 38269626Sru 38355839Sasmodai .el .ds an-extra3 System Programmer's Manual 38418099Spst 38569626Sru---------------------------------------------------------------------- 38669626Sru 38769626Sru* While formatting a manual page, groff complains about not being able 38869626Sru to break lines. The problem seems to be caused by a line like: 38918099Spst .TP \w'label'+2 39018099Spst 39118099SpstThe -man documentation says that the default scale indicator for TP 39218099Spstmacro is `n'. The groff -man macros implement this correctly, so that 39318099Spstthe argument will be evaluated as if it were 39469626Sru 39518099Spst \w'label'n+2n 39669626Sru 39718099SpstThe Unix -man macros don't implement this correctly (probably because 39818099Spstit's hard to do in Unix troff); they just append `n' to the entire 39918099Spstargument, so that it will be evaluated as if it were 40069626Sru 40118099Spst \w'label'u+2n 40269626Sru 40318099SpstThe solution is to fix the manual page: 40469626Sru 40518099Spst .TP \w'label'u+2 40618099Spst 40769626Sru---------------------------------------------------------------------- 40869626Sru 40918099Spst* I'm having problems formatting Ultrix man pages with groff -man. 41018099Spst 41118099SpstThe Ultrix man pages use a number of non-standard extensions to the 41218099SpstUnix man macros. One solution is to use the Ultrix -man macros with 41318099Spstgroff. Rename /usr/local/lib/groff/tmac/tmac.an to 41418099Spst/usr/local/lib/groff/tmac/tmac.an.gnu, copy /usr/lib/tmac/tmac.an to 41518099Spst/usr/local/lib/groff/tmac/tmac.an and apply the following patch (from 41618099SpstFrank Wortner): 41718099Spst 41818099Spst*** /usr/local/lib/groff/tmac/tmac.an Wed Sep 9 12:29:28 1992 41918099Spst--- /usr/lib/tmac/tmac.an Fri Jul 24 19:58:19 1992 42018099Spst*************** 42118099Spst*** 489,495 **** 42218099Spst . \" make special case of shift out of italic 42318099Spst .de }S 42418099Spst .ds ]F 42518099Spst! .if \\$12 .if !\\$5 .ds ]F \^ 42618099Spst .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" 42718099Spst .el \\$3 42818099Spst .}f 42918099Spst--- 489,495 ---- 43018099Spst . \" make special case of shift out of italic 43118099Spst .de }S 43218099Spst .ds ]F 43318099Spst! .if \\$12 .if !\\$5 .ds ]F\^ 43418099Spst .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" 43518099Spst .el \\$3 43618099Spst .}f 43718099Spst 43818099SpstAnother possible solution is to install tmac/man.ultrix as 43918099Spst/usr/local/lib/groff/tmac/man.local. 44018099Spst 44169626Sru---------------------------------------------------------------------- 44269626Sru 44318099Spst* I'm having problems formatting HP-UX 9.0 man pages with groff -man. 44418099Spst 44518099SpstRename /usr/local/lib/groff/tmac/tmac.an to (for example) 44618099Spst/usr/local/lib/groff/tmac/tmac.gan, copy HP's tmac.an into 44718099Spst/usr/local/lib/groff/tmac/tmac.an, and either put `.cp 1' at the 44818099Spstbeginning or filter it (and any files it .so's) through 44918099Spsttmac/fixmacros.sed. 45018099Spst 45169626Sru---------------------------------------------------------------------- 45269626Sru 45318099Spst* I'm having problems formatting man pages produced by the perl 45469626Sru wrapman script. 45518099Spst 45618099SpstSome versions of wrapman have a superfluous blank line before the .TH 45718099Spstline. This must be deleted. Then either use groff -C, or apply the 45818099Spstfollowing patch: 45918099Spst 46018099Spst*** wrapman.~2~ Sun Jan 19 12:10:24 1992 46118099Spst--- wrapman Tue Aug 10 02:06:41 1993 46218099Spst*************** 46318099Spst*** 35,41 **** 46418099Spst $line1 .= <IN> if $line1 =~ /eval/; 46518099Spst $line1 .= <IN> if $line1 =~ /argv/; 46618099Spst $line2 = <IN>; 46718099Spst! next if $line2 eq "'di';\n"; 46818099Spst 46918099Spst # Pull the old switcheroo. 47018099Spst 47118099Spst--- 35,41 ---- 47218099Spst $line1 .= <IN> if $line1 =~ /eval/; 47318099Spst $line1 .= <IN> if $line1 =~ /argv/; 47418099Spst $line2 = <IN>; 47518099Spst! next if $line2 eq "'di ';\n" || $line2 eq "'di';\n"; 47618099Spst 47718099Spst # Pull the old switcheroo. 47818099Spst 47918099Spst*************** 48018099Spst*** 49,56 **** 48118099Spst 48218099Spst print OUT $line1; 48318099Spst print OUT <<EOF; 48418099Spst! 'di'; 48518099Spst! 'ig00'; 48618099Spst # 48718099Spst # $header 48818099Spst # 48918099Spst--- 49,58 ---- 49018099Spst 49118099Spst print OUT $line1; 49218099Spst print OUT <<EOF; 49318099Spst! 'di '; 49418099Spst! 'ds 00 \\"'; 49518099Spst! 'eo '; 49618099Spst! 'ig 00 '; 49718099Spst # 49818099Spst # $header 49918099Spst # 50018099Spst*************** 50118099Spst*** 72,85 **** 50218099Spst 50318099Spst # These next few lines are legal in both Perl and nroff. 50418099Spst 50518099Spst! $null.00; # finish .ig 50618099Spst 50718099Spst 'di \\" finish diversion--previous line must be blank 50818099Spst .nr nl 0-1 \\" fake up transition to first page again 50918099Spst .nr % 0 \\" start at page 1 51018099Spst! '; __END__ ##### From here on it's a standard manual page ##### 51118099Spst .TH $PROG 1 "$month $mday, 19$year" 51218099Spst- .AT 3 51318099Spst .SH NAME 51418099Spst $prog \\- whatever 51518099Spst .SH SYNOPSIS 51618099Spst--- 74,87 ---- 51718099Spst 51818099Spst # These next few lines are legal in both Perl and nroff. 51918099Spst 52018099Spst! $null.00 ; # finish .ig 52118099Spst! 'ec \\'; 52218099Spst 52318099Spst 'di \\" finish diversion--previous line must be blank 52418099Spst .nr nl 0-1 \\" fake up transition to first page again 52518099Spst .nr % 0 \\" start at page 1 52618099Spst! .\\"'; __END__ ##### From here on it's a standard manual page ##### 52718099Spst .TH $PROG 1 "$month $mday, 19$year" 52818099Spst .SH NAME 52918099Spst $prog \\- whatever 53018099Spst .SH SYNOPSIS 53118099Spst 53218099Spst 53369626Sru---------------------------------------------------------------------- 53418099Spst 53569626Sru* When I preview documents using -TX75 or -TX100, the layout is not 53669626Sru the same as when I print the document with -Tps: the line and page 53769626Sru breaks come in different places. 53869626Sru 53918099SpstUse groff -X -Tps. 54018099Spst 54169626Sru---------------------------------------------------------------------- 54269626Sru 54318099Spst* When I try to run gxditview, I get the error: 54469626Sru Error: Widget viewport has zero width and/or height 54518099Spst 54618099SpstThis error means you haven't correctly installed the application 54718099Spstdefaults file, GXditview.ad; ``make install'' does this for you 54818099Spstautomatically, so either you didn't do ``make install'', or you don't 54918099Spsthave imake configured correctly. 55018099Spst 55169626Sru---------------------------------------------------------------------- 55269626Sru 55318099Spst* groff uses up an enormous amount of memory processing large files. 55469626Sru I'm using 386BSD 0.1. 55518099Spst 55618099Spst386BSD includes an old version of g++, 1.39, which has a bug that 55718099Spstcauses a major memory leak in gtroff. Apply the following fix to g++ 55818099Spstand recompile groff: 55918099Spst 56018099Spst*** cplus-decl.c.~1~ Mon Aug 6 05:28:59 1990 56118099Spst--- cplus-decl.c Wed Jun 5 08:55:04 1991 56218099Spst*************** 56318099Spst*** 7951,7961 **** 56418099Spst 56518099Spst /* At the end, call delete if that's what's requested. */ 56618099Spst if (TREE_GETS_DELETE (current_class_type)) 56718099Spst exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node), 56818099Spst get_identifier (OPERATOR_DELETE_FORMAT), 56918099Spst! build_tree_list (NULL_TREE, integer_zero_node), 57018099Spst NULL_TREE, LOOKUP_NORMAL); 57118099Spst else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type)) 57218099Spst exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0); 57318099Spst else 57418099Spst exprstmt = 0; 57518099Spst--- 7951,7961 ---- 57618099Spst 57718099Spst /* At the end, call delete if that's what's requested. */ 57818099Spst if (TREE_GETS_DELETE (current_class_type)) 57918099Spst exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node), 58018099Spst get_identifier (OPERATOR_DELETE_FORMAT), 58118099Spst! build_tree_list (NULL_TREE, current_class_decl), 58218099Spst NULL_TREE, LOOKUP_NORMAL); 58318099Spst else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type)) 58418099Spst exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0); 58518099Spst else 58618099Spst exprstmt = 0; 58718099Spst 58869626Sru---------------------------------------------------------------------- 58969626Sru 59018099Spst* Where can I get grap? 59118099Spst 59269626SruTed Faber <faber@lunabase.org> has written a freely available grap: 59318099Spst 59469626Sru http://www.lunabase.org/~faber/Vault/software/grap/ 59569626Sru 59669626Sru---------------------------------------------------------------------- 59769626Sru 59818099Spst* How can I use groff with an old LaserJet printer that doesn't work 59969626Sru with groff -Tlj4? 60018099Spst 60118099SpstYou have at least 3 options: 60218099Spst 60318099Spst- use groff -Tps with GNU Ghostscript; 60418099Spst 60518099Spst- use groff -Tdvi with a TeX .dvi to Laserjet driver; 60618099Spst 60718099Spst- use groff with the LaserJet driver in Chris Lewis' psroff package 60869626Sru (available for ftp from: 60969626Sru ftp.uunet.ca:/distrib/chris_lewis/psroff3.0pl17). 61018099Spst 61169626Sru---------------------------------------------------------------------- 61269626Sru 61318099Spst* Groff seems to generate level 3 Postscript, but my printer is only a 61469626Sru level 1 or 2 PostScript printer. 61518099Spst 61618099SpstIn fact groff generates only level 1 PostScript. The `%!PS-Adobe-3.0' 61718099Spstcomment at the beginning of PostScript output generated by groff 61818099Spstindicates that the file conforms to version 3.0 of the Adobe Document 61918099SpstStructuring Conventions. The output generated by groff should be 62018099Spstprintable on any PostScript printer. Problems with groff output's not 62118099Spstprinting are most often caused by the spooling system. 62218099Spst 62369626Sru---------------------------------------------------------------------- 62469626Sru 62518099Spst* The \n(st and \n(sb registers don't seem to work. I thought \w set 62669626Sru them to the height and depth of its argument, but the registers 62769626Sru always seem to be 0. 62818099Spst 62918099Spst\n(st and \n(sb aren't supposed to give the height and depth of the 63018099Spststring rather they give the minimum and maximum vertical displacement 63118099Spstof the baseline. For example for \v'2u'\v'-3u', \n(st will be 1 and 63218099Spst\n(sb will be -2. The height and depth of the string is available in 63318099Spstthe \n[rst] and \n[rsb] registers: these are groff extensions. 63418099Spst 63569626Sru---------------------------------------------------------------------- 63669626Sru 63718099Spst* On an SGI system, how can I make the man command use groff? 63818099Spst 63918099SpstFrom David Hinds <dhinds@allegro.stanford.edu> (some of these steps 64018099Spstare unnecessary if you install with the `g' Makefile variable defined 64118099Spstas empty): 64218099Spst 64318099SpstCreate a script called 'eqn': 64418099Spst 64518099Spst > #!/bin/sh 64618099Spst > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi 64718099Spst > geqn $* 64818099Spst 64918099Spstand a script called 'neqn': 65018099Spst 65118099Spst > #!/bin/sh 65218099Spst > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi 65318099Spst > geqn -Tascii $* 65418099Spst 65518099Spstand do: 65618099Spst 65718099Spst > ln -s gnroff nroff 65818099Spst 65918099Spstand edit the end of the gnroff script to be: 66018099Spst 66118099Spst > rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` 66218099Spst > exec groff -Wall -mtty-char $T $opts $rest 66318099Spst 66418099SpstTo get PostScript output from 'man -t', you also need to create a 66518099Spst'psroff' script similar to 'nroff'. Here are the context diffs: 66618099Spst 66718099Spst*** /usr/local/bin/nroff Sat Feb 13 15:51:09 1993 66818099Spst--- /usr/local/bin/psroff Sat Feb 13 17:45:46 1993 66918099Spst*************** 67018099Spst*** 1,8 **** 67118099Spst #!/bin/sh 67218099Spst! # Emulate nroff with groff. 67318099Spst 67418099Spst prog="$0" 67518099Spst! T=-Tascii 67618099Spst opts= 67718099Spst 67818099Spst for i 67918099Spst--- 1,8 ---- 68018099Spst #!/bin/sh 68118099Spst! # Emulate psroff with groff. 68218099Spst 68318099Spst prog="$0" 68418099Spst! T=-Tps 68518099Spst opts= 68618099Spst 68718099Spst for i 68818099Spst*************** 68918099Spst*** 25,30 **** 69018099Spst--- 25,33 ---- 69118099Spst -Tascii|-Tlatin1) 69218099Spst T=$1 69318099Spst ;; 69418099Spst+ -t) 69518099Spst+ # ignore -- default is send to stdout 69618099Spst+ ;; 69718099Spst -T*) 69818099Spst # ignore other devices 69918099Spst ;; 70018099Spst*************** 70118099Spst*** 49,53 **** 70218099Spst rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` 70318099Spst 70418099Spst # This shell script is intended for use with man, so warnings are 70518099Spst # probably not wanted. Also load nroff-style character definitions. 70618099Spst! exec groff -Wall -mtty-char $T $opts $rest 70718099Spst--- 52,56 ---- 70818099Spst rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` 70918099Spst 71018099Spst # This shell script is intended for use with man, so warnings are 71118099Spst! # probably not wanted. 71218099Spst! exec groff -Wall $T $opts $rest 713