386BSD 0.1 development
authorWilliam F. Jolitz <wjolitz@soda.berkeley.edu>
Tue, 30 Apr 1991 22:39:34 +0000 (14:39 -0800)
committerWilliam F. Jolitz <wjolitz@soda.berkeley.edu>
Tue, 30 Apr 1991 22:39:34 +0000 (14:39 -0800)
Work on file usr/src/usr.bin/groff/Makefile.gnu
Work on file usr/src/usr.bin/groff/PROBLEMS

Co-Authored-By: Lynne Greer Jolitz <ljolitz@cardio.ucsf.edu>
Synthesized-from: 386BSD-0.1

usr/src/usr.bin/groff/Makefile.gnu [new file with mode: 0644]
usr/src/usr.bin/groff/PROBLEMS [new file with mode: 0644]

diff --git a/usr/src/usr.bin/groff/Makefile.gnu b/usr/src/usr.bin/groff/Makefile.gnu
new file mode 100644 (file)
index 0000000..65a5495
--- /dev/null
@@ -0,0 +1,285 @@
+#Copyright (C) 1989, 1990, 1991 Free Software Foundation, Inc.
+#     Written by James Clark (jjc@jclark.uucp)
+#
+#This file is part of groff.
+#
+#groff is free software; you can redistribute it and/or modify it under
+#the terms of the GNU General Public License as published by the Free
+#Software Foundation; either version 1, or (at your option) any later
+#version.
+#
+#groff is distributed in the hope that it will be useful, but WITHOUT ANY
+#WARRANTY; without even the implied warranty of MERCHANTABILITY or
+#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+#for more details.
+#
+#You should have received a copy of the GNU General Public License along
+#with groff; see the file LICENSE.  If not, write to the Free Software
+#Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# Define PAGE to be letter if your PostScript printer uses 8.5x11 paper (USA)
+# and define it to be A4, if it uses A4 paper (rest of the world).
+PAGE=A4
+#PAGE=letter
+
+# BINDIR says where to install executables.
+BINDIR=/usr/local/bin
+
+GROFFLIBDIR=/usr/local/lib/groff
+
+# FONTDIR says where to install dev*/*.
+FONTDIR=$(GROFFLIBDIR)/font
+
+# FONTPATH says where to look for dev*/*.
+FONTPATH=.:$(FONTDIR):/usr/local/lib/font:/usr/lib/font
+
+# MACRODIR says where to install macros.
+MACRODIR=$(GROFFLIBDIR)/tmac
+
+# MACROPATH says where to look for macro files.
+MACROPATH=.:$(MACRODIR):/usr/lib/tmac
+
+# DEVICE is the default device.
+DEVICE=ps
+
+# PSPRINT is the command to use for printing a PostScript file.
+# It must be a simple command, not a pipeline.
+PSPRINT=lpr
+
+# DVIPRINT is the command to use for printing a TeX dvi file.
+# It must be a simple command, not a pipeline.
+DVIPRINT=lpr -d
+
+# HYPHENFILE is the file containing the hyphenation patterns.
+HYPHENFILE=$(GROFFLIBDIR)/hyphen
+
+# MANROOT is the root of the man page directory tree.
+MANROOT=/usr/local/man
+
+# MAN1EXT is the man section for user commands.
+MAN1EXT=1
+MAN1DIR=$(MANROOT)/man$(MAN1EXT)
+
+# MAN5EXT is the man section for file formats.
+MAN5EXT=5
+MAN5DIR=$(MANROOT)/man$(MAN5EXT)
+
+# MAN7EXT is the man section for macros.
+MAN7EXT=7
+MAN7DIR=$(MANROOT)/man$(MAN7EXT)
+
+# The groff ms macros will be available as -m$(TMAC_S).
+# If you use `TMAC_S=s', you can use the Unix ms macros by using
+# groff -ms -M/usr/lib/tmac.
+TMAC_S=gs
+
+# Include -DBROKEN_SPOOLER in CPPDEFINES if you have a PostScript
+# spooler or previewer that is unable to cope with anything after
+# %%EndProlog and before the first page (old versions of TranScript
+# have this problem) or gets confused by included documents (the Sun
+# pageview previewer has this problem), or if you are going to be
+# sharing PostScript documents with others who might be running such a
+# spooler or previewer.
+# Include -DCFRONT_ANSI_BUG if you are using AT&T C++ 2.0 with an ANSI C
+# compiler backend.
+# Include -DHAVE_VFORK if you have vfork().
+# Include -DHAVE_SYS_SIGLIST if you have sys_siglist[].
+# Include -DHAVE_UNION_WAIT if wait() is declared by osfcn.h to take
+# an argument of type union wait * (Sun C++ does this).  Don't include
+# it if you're using the libg++ header files.
+CPPDEFINES=-DBROKEN_SPOOLER -DHAVE_VFORK -DHAVE_SYS_SIGLIST # -DHAVE_UNION_WAIT -DCFRONT_ANSI_BUG
+
+# Uncomment the next line if you don't have fmod in your math library.
+# I believe this is needed on Ultrix and BSD 4.3.
+# FMOD=fmod.o
+
+# Uncomment the next line if you don't have strtol in your C library.
+# I believe this is needed on BSD 4.3.
+# STRTOL=strtol.o
+
+# Additional flags needed to compile lib/malloc.c
+# Use this with BSD.
+MALLOCFLAGS=-DBSD
+# Use this with System V
+# MALLOCFLAGS=-DUSG
+# Use this with SunOS 4.1
+# MALLOCFLAGS=-DBSD -DSUNOS_LOCALTIME_BUG
+
+# Comment this out if the GNU malloc gives you problems, or if you would
+# prefer to use the system malloc.
+MALLOC=malloc.o
+
+GROFF=
+# Comment the next line out if groff.c gives problems.
+GROFF=groff
+
+# CC is the C++ compiler
+CC=g++
+# I'm told that -fno-inline is needed on a 68030-based Apollo
+# CC=g++ -fno-inline
+
+# OLDCC is the C compiler.
+OLDCC=gcc
+
+PROFILE_FLAG=
+DEBUG_FLAG=-g
+OPTIMIZE_FLAG=-O
+WARNING_FLAGS=#-Wall -Wcast-qual -Wwrite-strings
+
+# Use this to pass additional flags on the command line.
+XCFLAGS=
+
+# CFLAGS are passed to sub makes
+CFLAGS=$(PROFILE_FLAG) $(DEBUG_FLAG) $(OPTIMIZE_FLAG) $(WARNING_FLAGS) \
+       $(CPPDEFINES) $(XCFLAGS)
+
+XOLDCFLAGS=
+# OLDCFLAGS are passed to sub makes
+OLDCFLAGS=$(DEBUG_FLAG) $(PROFILE_FLAG) $(OPTIMIZE_FLAG) $(XOLDCFLAGS)
+
+XLDFLAGS=
+LDFLAGS=$(PROFILE_FLAG) $(DEBUG_FLAG) $(XLDFLAGS)
+# Libraries needed for linking C++ programs.
+LIBS=
+# Libraries needed for linking C++ programs that use libm.a.
+MLIBS=$(LIBS) -lm
+
+AR=ar
+
+# Define RANLIB to be empty if you don't have ranlib.
+RANLIB=ranlib
+
+# YACC can be either yacc or bison -y
+YACC=bison -y
+YACCFLAGS=-v
+
+ETAGS=/usr/local/bin/etags
+# Flag to make etags treat *.[ch] files as C++
+ETAGSFLAGS=-p
+
+SHELL=/bin/sh
+
+SUBDIRS=lib troff pic tbl eqn etc driver ps tty dvi macros man
+
+# SUBFLAGS says what flags to pass to sub makes
+SUBFLAGS="CC=$(CC)" "CFLAGS=$(CFLAGS)" "LDFLAGS=$(LDFLAGS)" \
+       "OLDCC=$(OLDCC)" "OLDCFLAGS=$(OLDCFLAGS)" \
+       "YACC=$(YACC)" "YACCFLAGS=$(YACCFLAGS)" \
+       "DEVICE=$(DEVICE)" "FONTPATH=$(FONTPATH)" "MACROPATH=$(MACROPATH)" \
+       "MALLOCFLAGS=$(MALLOCFLAGS)" "MALLOC=$(MALLOC)" \
+       "FMOD=$(FMOD)" "STRTOL=$(STRTOL)" \
+       "AR=$(AR)" "RANLIB=$(RANLIB)" "LIBS=$(LIBS)" "MLIBS=$(MLIBS)" \
+       "FONTDIR=$(FONTDIR)" "BINDIR=$(BINDIR)" "PAGE=$(PAGE)" \
+       "MACRODIR=$(MACRODIR)" "HYPHENFILE=$(HYPHENFILE)" \
+       "TMAC_S=$(TMAC_S)" "MAN1EXT=$(MAN1EXT)" "MAN1DIR=$(MAN1DIR)" \
+       "MAN5EXT=$(MAN5EXT)" "MAN5DIR=$(MAN5DIR)" \
+       "MAN7EXT=$(MAN7EXT)" "MAN7DIR=$(MAN7DIR)"
+
+all: $(SUBDIRS) $(GROFF) shgroff
+
+$(SUBDIRS): FORCE
+       @cd $@; \
+       echo Making all in $@; \
+       $(MAKE) $(SUBFLAGS) all
+
+troff pic tbl eqn etc ps tty dvi: lib
+ps tty dvi: driver
+
+TAGS: FORCE
+       @for dir in $(SUBDIRS); do \
+       echo Making TAGS in $$dir; \
+       (cd $$dir; $(MAKE) "ETAGSFLAGS=$(ETAGSFLAGS)" "ETAGS=$(ETAGS)" TAGS); \
+       done
+
+topclean: FORCE
+       -rm -f shgroff
+       -rm -f groff *.o core
+
+clean: topclean FORCE
+       @for dir in $(SUBDIRS) doc; do \
+       echo Making clean in $$dir; \
+       (cd $$dir; $(MAKE) clean); done
+
+distclean: topclean FORCE
+       @for dir in $(SUBDIRS) doc; do \
+       echo Making distclean in $$dir; \
+       (cd $$dir; $(MAKE) distclean); done
+
+# You really don't want to use this target.
+realclean: topclean FORCE
+       @for dir in $(SUBDIRS) doc; do \
+       echo Making realclean in $$dir; \
+       (cd $$dir; $(MAKE) realclean); done
+
+install.nobin: FORCE shgroff
+       -[ -d $(BINDIR) ] || mkdir $(BINDIR)
+       -[ -d $(GROFFLIBDIR) ] || mkdir $(GROFFLIBDIR)
+       -[ -d $(MANROOT) ] || mkdir $(MANROOT)
+       @for dir in $(SUBDIRS); do \
+       echo Making install.nobin in $$dir; \
+       (cd $$dir; $(MAKE) $(SUBFLAGS) install.nobin); done
+       if [ -z "$(GROFF)" ] ; then cp shgroff $(BINDIR)/groff ; fi
+
+install.bin: FORCE $(GROFF)
+       -[ -d $(BINDIR) ] || mkdir $(BINDIR)
+       @for dir in $(SUBDIRS); do \
+       echo Making install.bin in $$dir; \
+       (cd $$dir; $(MAKE) $(SUBFLAGS) install.bin); done
+       if [ -n "$(GROFF)" ] ; then cp groff $(BINDIR)/groff ; fi
+
+install: install.bin install.nobin
+
+install.mm: FORCE
+       -[ -d $(GROFFLIBDIR) ] || mkdir $(GROFFLIBDIR)
+       -[ -d $(MACRODIR) ] || mkdir $(MACRODIR)
+       sed -f macros/fixmacros.sed -e 's;/usr/lib/tmac;$(MACRODIR);' \
+           /usr/lib/macros/mmt >$(MACRODIR)/tmac.m
+       sed -f macros/fixmacros.sed /usr/lib/tmac/sys.name \
+           >$(MACRODIR)/sys.name
+       patch -s $(MACRODIR)/tmac.m macros/mm.diff
+
+shgroff: groff.sh
+       @echo Making $@ from groff.sh
+       @-rm -f $@
+       @sed -e "s;@BINDIR@;$(BINDIR);" \
+       -e "s;@DEVICE@;$(DEVICE);" \
+       -e "s;@PROG_PREFIX@;$(PROG_PREFIX);" \
+       -e "s;@FONTDIR@;$(FONTDIR);" \
+       -e "s;@PSPRINT@;$(PSPRINT);" \
+       -e "s;@DVIPRINT@;$(DVIPRINT);" \
+       groff.sh >$@ || rm -f $@
+       @chmod +x $@
+
+groff: groff.o lib/libgroff.a
+       $(CC) $(LDFLAGS) -o $@ groff.o lib/libgroff.a $(LIBS)
+
+lib/libgroff.a: lib
+
+groff.o: groff.c stringify
+       $(CC) -c -Ilib $(CFLAGS) -DDEVICE=\"$(DEVICE)\" \
+       "-DPSPRINT=`$(SHELL) stringify $(PSPRINT)`" \
+       "-DDVIPRINT=`$(SHELL) stringify $(DVIPRINT)`" \
+       groff.c
+
+groff.o: lib/lib.h lib/errarg.h lib/error.h lib/stringclass.h lib/font.h
+
+bindist: all VERSION Makefile.bd README.bd FORCE
+       -[ -d bindist ] || mkdir bindist
+       @topdir=`pwd`; \
+       for dir in $(SUBDIRS); do \
+       (cd $$dir; $(MAKE) "BINDIR=$$topdir/bindist" install.bin); done
+       cp README.bd bindist/README
+       cp VERSION bindist
+       if [ "$(GROFF)" ] ; then cp groff bindist/groff ; fi
+       @echo Making bindist/Makefile
+       @sed -e "s;@GROFFLIBDIR@;$(GROFFLIBDIR);" \
+       -e "s;@FONTDIR@;$(FONTDIR);" \
+       -e "s;@FONTPATH@;$(FONTPATH);" \
+       -e "s;@MACRODIR@;$(MACRODIR);" \
+       -e "s;@MACROPATH@;$(MACROPATH);" \
+       -e "s;@HYPHENFILE@;$(HYPHENFILE);" \
+       -e "s;@DEVICE@;$(DEVICE);" \
+       -e "s;@GROFF@;$(GROFF);" \
+       Makefile.bd >bindist/Makefile
+
+FORCE:
diff --git a/usr/src/usr.bin/groff/PROBLEMS b/usr/src/usr.bin/groff/PROBLEMS
new file mode 100644 (file)
index 0000000..17d9be6
--- /dev/null
@@ -0,0 +1,285 @@
+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 am having problems compiling groff with g++ on a DECstation or
+other machine using a MIPS processor (such as SGI machines).
+
+Try getting g++ from foobar.colorado.edu:pub/Gnu-For-Pmax.
+
+* I am having problems compiling groff with g++ on a 386 PC
+running SVR3.2.
+
+I recommend using Michael Bloom's GNU COFF patches
+(tut.cis.ohio-state.edu:pub/gnu/coff/gnu-coff.tar.Z).
+
+* 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.
+
+Include -DCFRONT_ANSI_BUG in CPPDEFINES in the top-level Makefile.  If
+that doesn't solve the problem, define INT_MIN as -INT_MAX in
+lib/lib.h.
+
+* Using SunOS 4.1, gtroff aborts in malloc.
+
+Include -DSUNOS_LOCALTIME_BUG in MALLOCFLAGS in the top-level Makefile.
+
+* g++ 1.37.2 alpha gives the following error while compiling groff:
+Failed assertion `TREE_CHAIN (list) == NULL_TREE' at line 777 of `cplus-tree.c'
+
+Apply the fix given in the groff INSTALL file.  I recommend using g++
+1.37.1 in preference to 1.37.2 alpha.
+
+* When I try to compile groff with g++, I get lots of parse errors
+from files in /usr/include.
+
+You must install C++ versions of the standard include files; these are
+included with libg++.
+
+* g++ complains about conflicting declarations of fmod() while
+compiling pic.tab.c; I'm using a 68k based machine.
+
+This is a bug in the libg++ header files.  Apply the fix given in the
+INSTALL file.
+
+* I get errors when I try to compile groff with Sun C++.
+
+Groff requires ANSI C style header files.  The Sun C++ header files
+need some 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 *';
+malloc should be declared to return `void *'.  You can either change
+them in place, or copy them to some other directory and include that
+directory with a -I option.
+
+* I get the error `make[2]: execve: /bin/sh: Arg list too long.'.
+
+If you're using GNU make, try using /bin/make instead.  Otherwise if
+you have the `env' command, try changing occurrences of $(MAKE) in the
+top-level Makefile to
+   env - PATH=/bin:/usr/bin $(MAKE)
+
+* The pic Makefile refers to a program called gperf; I can't find
+gperf anywhere.
+
+You don't need gperf unless you want to add new keywords to gpic:
+gperf is only used to generate key.c and a suitable key.c is supplied
+in the distribution.  Gperf is distributed with libg++; it's a perfect
+hash function generator
+
+* 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 am trying to include a PostScript illustration by using:
+  \!%
+  \!PB
+  <lines of PostScript, each preceded by \!>
+  \!PE
+  \!.
+
+This mechanism for including PostScript illustrations is a feature
+peculiar to Adobe's TranScript software.  It is not supported by
+groff.  You should switch to using the PSPIC macro.
+
+* 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 !\a\\*(10\a\a .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.  If you failed to do this, you can fix the problem by doing:
+  cp ps/devps/DESC-letter /usr/local/lib/groff/font/devps/DESC
+
+* 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.  Include -DBROKEN_SPOOLER in CPPDEFINES in the top-level
+Makefile, and rebuild grops.
+
+* 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.  Include -DBROKEN_SPOOLER in CPPDEFINES
+in the top-level Makefile, and rebuild grops.
+
+* When I try to preview the output of groff -Tps using ralpage, I get
+errors from ralpage.
+
+This is a bug in ralpage.  You may be able to work around the bug by
+defining MF and SF in ps/devps/prologue using `def' instead of `bind
+def'.
+
+* With groff -TX75 or -TX100, I can only view the first page.
+
+The left mouse button brings up a menu that allows you to view other
+pages.
+
+* Documents that use mainly 12-point text exhibit poor letter spacing
+when previewed with groff -TX75 or -TX100.
+
+Use groff -TX75-12 or groff -TX100-12.
+
+* 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 correct
+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 -mm.
+
+-mm needs a few changes to work with groff; `make install.mm' 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.
+
+* 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
+
+* Where is the document ``Groff Character Names'' that is mentioned in various
+man pages?
+
+It is in doc/chars.tr.  You can print it out with each device to see
+what characters are available for that device.
+
+* 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
+
+* When I preview documents using -TX75 or -TX100, the layout is not the same
+as when I print the document with -Tps or -Tdvi: the line and page
+breaks come in different places.
+
+This is the way xditview works: the widths of characters in the X
+fonts don't match the widths of characters in the PostScript fonts, so
+the layout usually comes out differently.  The idea of xditview is
+just to give you a readable representation of your document on screen,
+rather than to give you a simulation of how it will look when printed.
+If you want that, then you could use a PostScript previewer or a dvi
+previewer according as you're using -Tps or -Tdvi.  Alternatively you
+could port xtroff.
+
+* In gpic expressions don't work at all. I'm using g++ 1.39 on a sparc.
+
+This is a bug in gcc/g++ 1.39.  Apply the fix given in the INSTALL file.