diff options
Diffstat (limited to 'gnu/usr.bin/groff/PROBLEMS')
-rw-r--r-- | gnu/usr.bin/groff/PROBLEMS | 548 |
1 files changed, 0 insertions, 548 deletions
diff --git a/gnu/usr.bin/groff/PROBLEMS b/gnu/usr.bin/groff/PROBLEMS deleted file mode 100644 index cc879908c95..00000000000 --- a/gnu/usr.bin/groff/PROBLEMS +++ /dev/null @@ -1,548 +0,0 @@ -This file describes various problems that have been encountered in -compiling, installing and running groff. Suggestions for additions or -other improvements to this file are welcome. - -* I get lots of `numeric overflow' error messages whenever I run -groff; I compiled groff with AT&T C++ 2.0 with an ANSI C compiler. - -Make sure -DCFRONT_ANSI_BUG is included in DEFINES in the top-level -Makefile. If that doesn't solve the problem, define INT_MIN as --INT_MAX in libgroff/lib.h. - -* I get errors when I try to compile groff with Sun C++ version 3 or -earlier. - -Groff requires header files that are moderately compatible with AT&T -C++ and ANSI C. With some versions of Sun C++, the supplied header -files need some of the following changes to meet this requirement: -<string.h> must declare the mem* functions, (just add `#include -<memory.h>' to <string.h>); the first argument to fopen and freopen -should be declared as `const char *'; the first argument to fread -should be declared as `void *'; the first argument to fwrite should be -declared as `const void *'; malloc should be declared to return `void -*'; in <alloca.h>, the declaration `extern "C" { void -*__builtin_alloca(int); }' should be added; declarations of getopt(), -optarg, optind and opterr should be added to <stdlib.h>; in -<sys/signal.h> the return type and the second argument type of -signal() should be changed to be `void (*)(int)'. - -You can either change them in place, or copy them to some other -directory and include that directory with a -I option. - -* I get errors when I try to compile groff with DEC C++. - -Fix the declaration of write() in <unistd.h> so that the second -argument is a const char *. Fix the declaration of open() in -<sys/file.h> so that the first argument is a const char *. - -* On Ultrix, the make stops with the message - - *** Error code 1 - - Stop. - -for no apparent reason. - -Use GNU make. - -* I'm having problems compiling groff on 386BSD 0.1. - -If you're using ash as /bin/sh, you'll need the following patch. - -*** gendef.sh.org Sun Jun 30 13:30:36 1991 ---- gendef.sh Sun Feb 28 10:23:49 1993 -*************** -*** 3,9 **** - file=$1 - shift - -! defs="#define $1" - shift - for def - do ---- 3,10 ---- - file=$1 - shift - -! x=$1 -! defs="#define $x" - shift - for def - do - -You'll also need to change dirnamemax.c so that it doesn't use -pathconf(). - -* While compiling on Xenix, ranlib libgroff.a fails. - -The system ranlib can't handle externals longer than 40 characters. -Use the ranlib included in demon.co.uk:/pub/xenix/g++-1.40.3a.v1 -instead. - -* Groff can't handle my troff document. It works fine with AT&T troff. - -Read the section on incompatibilities in gtroff(1). Try using the -C -option. Alternatively there's the sed script in tmac/fixmacros.sed -which will attempt to edit a file of macros so that it can be used -with groff without the -C flag. - -* groff -Tdvi produces dvi files that use fonts at weird magnifications. - -Yes, it does. You may need to compile fonts with Metafont at these -magnifications. The CompileFonts script in the devdvi/generate -directory may help you to do this. (It will take a *long* time.) - -* pic output is not centered horizontally; pictures sometimes run off -the bottom of the page. - -The macro package you are using is not supplying appropriate definitions -of PS and PE. Give groff a -mpic option. - -* I'm having problems including PostScript illustrations using the PSPIC -macro. - -A PostScript document must meet three requirements in order to be -included with the PSPIC macro: it must comply with the Adobe Document -Structuring Conventions; it must contain a BoundingBox line; it must -be ``well-behaved''. The BoundingBox line should be of the form: - - %%BoundingBox: llx lly urx ury - -where llx, lly, urx, ury are the coordinates of the lower left x, -lower left y, upper right x, upper right y of the bounding box of -marks on the page expressed as integers in the default PostScript -coordinate system (72 units per inch, origin at bottom left corner). -A useful tactic is to print out the illustration by itself (you may -need to add a `showpage' at the end), and physically measure the -bounding box. For more detail on these requirements, read the -specification of Encapsulated PostScript format. (This is available -from the Adobe file server; send a message with a body of `help' to -ps-file-server@adobe.com.) - -* I've configured groff for A4 paper, but gtroff still seems to think -that the length of a page (as returned by \n(.p) is 11 inches. - -This is intentional. The PAGE option is used only by grops. For -compatibility with ditroff, the default page length in gtroff is -always 11 inches. The page length can be changed with the `pl' -request. - -* Groff doesn't use the font names I'm used to. - -Use the `ftr' request. See gtroff(1). - -* I get errors using the Unix -ms macros with groff -e -C. - -Apply this change: - -*** /usr/lib/ms/ms.eqn Tue Apr 25 02:14:28 1989 ---- ms.eqn Sun Nov 11 10:33:59 1990 -*************** -*** 22,29 **** - .. - . \" EN - end of a displayed equation - .de EN -! .if !\\*(10 .br - .di - .rm EZ - .nr ZN \\n(dn - .if \\n(ZN>0 .if \\n(YE=0 .LP ---- 22,30 ---- - .. - . \" EN - end of a displayed equation - .de EN -! .if \\n(.k>0 .br - .di -+ .ds 10 \\*(EZ\\ - .rm EZ - .nr ZN \\n(dn - .if \\n(ZN>0 .if \\n(YE=0 .LP - - -* gpic doesn't accept the syntax `chop N M' for chopping both ends of a -line. - -The correct syntax is `chop N chop M'. - -* With gpic -t, when I print `line ->; box' using a dvi to ps -program, the arrow head sticks through into the inside of the box. - -The dvi to ps program should be modified to set the line cap and -line join parameters to 1 while printing tpic specials. - -* When I print the output groff -Tps, the output is always shifted up -by about 0.7 inches; I'm using 8.5x11 inch paper. - -Make sure that PAGE is defined to be `letter' in the top-level -Makefile. - -* When I try to print the output of groff -Tps, I get no output at all -from the printer, and the log file shows the error -%%[ error: undefined; offendingcommand: BP ]%% -I using TranScript spooling software. - -This is a bug in the page reversal filter in early versions of -TranScript. Change the `broken' parameter in -/usr/local/lib/groff/font/devps/DESC to 7. - -* When I preview groff -Tps output using the Sun OpenWindows 2.0 pageview -program, all the pages are displayed on top of each other. - -This is a defect in pageview. Change the `broken' parameter in -/usr/local/lib/groff/font/devps/DESC to 2. - -* With groff -TX75, -TX100or -X, I can only view the first page. - -The left mouse button brings up a menu that allows you to view other -pages. - -* When I print the output of groff -Tdvi, I just get a black dot in -upper left corner. - -Some dvi drivers (notably early versions of xtex) do not correctly -handle dvi files that use a resolution different from that used by dvi -files produced by TeX. Try getting a more up to date driver. - -* I get lots of errors when I use groff with the AT&T -mm macros. - -The AT&T -mm macros need a few changes to work with groff; `make -install.dwbmm' will copy your -mm macros to groff's macro directory -and make the necessary changes. You may need to edit the commands for -the install.mm target in the Makefile. Alternatively use the groff --mm macros. - -* gtroff doesn't understand lines like `.ce99' with no space between -the name of the request or macro and the arguments. - -Gtroff requires a space between macro or request and its arguments -because it allows the use of long names for macros and requests. You -can use the -C option or the `cp' request to put gtroff into a -compatibility mode in which it is not possible to use long names for -macros but in which no space is required between macros and their -arguments. The use of compatibility mode is strongly discouraged. - -* gtroff gives warnings about lines like - .ev \" a comment -(with a tab after the .ev). - -A tab character cannot be used as a substitute for a space character -(except in one case: between a control character at the beginning of a -line and the name of a macro or request). For example, in Unix troff - .ps \" restore the previous point size -(with a tab after the .ps) will NOT restore the previous point-size; -instead it will be silently ignored. Since this is very likely to be -an error, gtroff can give a warning about it. If you want to align -comments, you can do it like this: - .ev\" \" a comment - -* I don't like the page headers and footers produced by groff -man. - -There seem to be many different styles of page header and footer -produced by different versions of the -man macros. You will need to -modify macros/tmac.an to suit your personal taste. For example, if -you want the center of the page header to say - UNIX Programmer's Manual -you will need to change the line - .el .ds an-extra3 \"UNIX Programmer's Manual -to - .el .ds an-extra3 UNIX Programmer's Manual - -* While formatting a manual page, groff complains about not being able to -break lines. The problem seems to be caused by a line like: - .TP \w'label'+2 - -The -man documentation says that the default scale indicator for TP -macro is `n'. The groff -man macros implement this correctly, so that -the argument will be evaluated as if it were - \w'label'n+2n -The Unix -man macros don't implement this correctly (probably because -it's hard to do in Unix troff); they just append `n' to the entire -argument, so that it will be evaluated as if it were - \w'label'u+2n -The solution is to fix the manual page: - .TP \w'label'u+2 - -* I'm having problems formatting Ultrix man pages with groff -man. - -The Ultrix man pages use a number of non-standard extensions to the -Unix man macros. One solution is to use the Ultrix -man macros with -groff. Rename /usr/local/lib/groff/tmac/tmac.an to -/usr/local/lib/groff/tmac/tmac.an.gnu, copy /usr/lib/tmac/tmac.an to -/usr/local/lib/groff/tmac/tmac.an and apply the following patch (from -Frank Wortner): - -*** /usr/local/lib/groff/tmac/tmac.an Wed Sep 9 12:29:28 1992 ---- /usr/lib/tmac/tmac.an Fri Jul 24 19:58:19 1992 -*************** -*** 489,495 **** - . \" make special case of shift out of italic - .de }S - .ds ]F -! .if \\$12 .if !\\$5 .ds ]F \^ - .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" - .el \\$3 - .}f ---- 489,495 ---- - . \" make special case of shift out of italic - .de }S - .ds ]F -! .if \\$12 .if !\\$5 .ds ]F\^ - .ie !\\$4 .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" - .el \\$3 - .}f - -Another possible solution is to install tmac/man.ultrix as -/usr/local/lib/groff/tmac/man.local. - -* I'm having problems formatting HP-UX 9.0 man pages with groff -man. - -Rename /usr/local/lib/groff/tmac/tmac.an to (for example) -/usr/local/lib/groff/tmac/tmac.gan, copy HP's tmac.an into -/usr/local/lib/groff/tmac/tmac.an, and either put `.cp 1' at the -beginning or filter it (and any files it .so's) through -tmac/fixmacros.sed. - -* I'm having problems formatting man pages produced by the perl -wrapman script. - -Some versions of wrapman have a superfluous blank line before the .TH -line. This must be deleted. Then either use groff -C, or apply the -following patch: - -*** wrapman.~2~ Sun Jan 19 12:10:24 1992 ---- wrapman Tue Aug 10 02:06:41 1993 -*************** -*** 35,41 **** - $line1 .= <IN> if $line1 =~ /eval/; - $line1 .= <IN> if $line1 =~ /argv/; - $line2 = <IN>; -! next if $line2 eq "'di';\n"; - - # Pull the old switcheroo. - ---- 35,41 ---- - $line1 .= <IN> if $line1 =~ /eval/; - $line1 .= <IN> if $line1 =~ /argv/; - $line2 = <IN>; -! next if $line2 eq "'di ';\n" || $line2 eq "'di';\n"; - - # Pull the old switcheroo. - -*************** -*** 49,56 **** - - print OUT $line1; - print OUT <<EOF; -! 'di'; -! 'ig00'; - # - # $header - # ---- 49,58 ---- - - print OUT $line1; - print OUT <<EOF; -! 'di '; -! 'ds 00 \\"'; -! 'eo '; -! 'ig 00 '; - # - # $header - # -*************** -*** 72,85 **** - - # These next few lines are legal in both Perl and nroff. - -! $null.00; # finish .ig - - 'di \\" finish diversion--previous line must be blank - .nr nl 0-1 \\" fake up transition to first page again - .nr % 0 \\" start at page 1 -! '; __END__ ##### From here on it's a standard manual page ##### - .TH $PROG 1 "$month $mday, 19$year" -- .AT 3 - .SH NAME - $prog \\- whatever - .SH SYNOPSIS ---- 74,87 ---- - - # These next few lines are legal in both Perl and nroff. - -! $null.00 ; # finish .ig -! 'ec \\'; - - 'di \\" finish diversion--previous line must be blank - .nr nl 0-1 \\" fake up transition to first page again - .nr % 0 \\" start at page 1 -! .\\"'; __END__ ##### From here on it's a standard manual page ##### - .TH $PROG 1 "$month $mday, 19$year" - .SH NAME - $prog \\- whatever - .SH SYNOPSIS - - -* When I preview documents using -TX75 or -TX100, the layout is not the same -as when I print the document with -Tps: the line and page breaks come -in different places. - -Use groff -X -Tps. - -* When I try to run gxditview, I get the error: -Error: Widget viewport has zero width and/or height - -This error means you haven't correctly installed the application -defaults file, GXditview.ad; ``make install'' does this for you -automatically, so either you didn't do ``make install'', or you don't -have imake configured correctly. - -* groff uses up an enormous amount of memory processing large files. -I'm using 386BSD 0.1. - -386BSD includes an old version of g++, 1.39, which has a bug that -causes a major memory leak in gtroff. Apply the following fix to g++ -and recompile groff: - -*** cplus-decl.c.~1~ Mon Aug 6 05:28:59 1990 ---- cplus-decl.c Wed Jun 5 08:55:04 1991 -*************** -*** 7951,7961 **** - - /* At the end, call delete if that's what's requested. */ - if (TREE_GETS_DELETE (current_class_type)) - exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node), - get_identifier (OPERATOR_DELETE_FORMAT), -! build_tree_list (NULL_TREE, integer_zero_node), - NULL_TREE, LOOKUP_NORMAL); - else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type)) - exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0); - else - exprstmt = 0; ---- 7951,7961 ---- - - /* At the end, call delete if that's what's requested. */ - if (TREE_GETS_DELETE (current_class_type)) - exprstmt = build_method_call (build1 (NOP_EXPR, TYPE_POINTER_TO (current_class_type), error_mark_node), - get_identifier (OPERATOR_DELETE_FORMAT), -! build_tree_list (NULL_TREE, current_class_decl), - NULL_TREE, LOOKUP_NORMAL); - else if (TYPE_USES_VIRTUAL_BASECLASSES (current_class_type)) - exprstmt = build_x_delete (ptr_type_node, current_class_decl, 0); - else - exprstmt = 0; - -* Where can I get grap? - -Grap is not freely available, but there is a nawk script implementing -an extended subset of grap available for ftp as -ftp.informatik.uni-rostock.de:/pub/local/software/prag-1.0.shar.gz. - -* How can I use groff with an old LaserJet printer that doesn't work -with groff -Tlj4? - -You have at least 3 options: - -- use groff -Tps with GNU Ghostscript; - -- use groff -Tdvi with a TeX .dvi to Laserjet driver; - -- use groff with the LaserJet driver in Chris Lewis' psroff package -(available for ftp from: -ftp.uunet.ca:/distrib/chris_lewis/psroff3.0pl17). - -* Groff seems to generate level 3 Postscript, but my printer is only a -level 1 or 2 PostScript printer. - -In fact groff generates only level 1 PostScript. The `%!PS-Adobe-3.0' -comment at the beginning of PostScript output generated by groff -indicates that the file conforms to version 3.0 of the Adobe Document -Structuring Conventions. The output generated by groff should be -printable on any PostScript printer. Problems with groff output's not -printing are most often caused by the spooling system. - -* The \n(st and \n(sb registers don't seem to work. I thought \w set -them to the height and depth of its argument, but the registers always -seem to be 0. - -\n(st and \n(sb aren't supposed to give the height and depth of the -string rather they give the minimum and maximum vertical displacement -of the baseline. For example for \v'2u'\v'-3u', \n(st will be 1 and -\n(sb will be -2. The height and depth of the string is available in -the \n[rst] and \n[rsb] registers: these are groff extensions. - -* On an SGI system, how can I make the man command use groff? - -From David Hinds <dhinds@allegro.stanford.edu> (some of these steps -are unnecessary if you install with the `g' Makefile variable defined -as empty): - -Create a script called 'eqn': - - > #!/bin/sh - > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi - > geqn $* - -and a script called 'neqn': - - > #!/bin/sh - > if [ ${1:-""} = /usr/pub/eqnchar ] ; then shift ; fi - > geqn -Tascii $* - -and do: - - > ln -s gnroff nroff - -and edit the end of the gnroff script to be: - - > rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` - > exec groff -Wall -mtty-char $T $opts $rest - -To get PostScript output from 'man -t', you also need to create a -'psroff' script similar to 'nroff'. Here are the context diffs: - -*** /usr/local/bin/nroff Sat Feb 13 15:51:09 1993 ---- /usr/local/bin/psroff Sat Feb 13 17:45:46 1993 -*************** -*** 1,8 **** - #!/bin/sh -! # Emulate nroff with groff. - - prog="$0" -! T=-Tascii - opts= - - for i ---- 1,8 ---- - #!/bin/sh -! # Emulate psroff with groff. - - prog="$0" -! T=-Tps - opts= - - for i -*************** -*** 25,30 **** ---- 25,33 ---- - -Tascii|-Tlatin1) - T=$1 - ;; -+ -t) -+ # ignore -- default is send to stdout -+ ;; - -T*) - # ignore other devices - ;; -*************** -*** 49,53 **** - rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` - - # This shell script is intended for use with man, so warnings are - # probably not wanted. Also load nroff-style character definitions. -! exec groff -Wall -mtty-char $T $opts $rest ---- 52,56 ---- - rest=`echo ${1+"$@"} | sed -e 's+/usr/lib/tmac+/usr/local/lib/groff/tmac+'` - - # This shell script is intended for use with man, so warnings are -! # probably not wanted. -! exec groff -Wall $T $opts $rest |