[net.text] print bibliography; bib

mp@whuxle.UUCP (Mark Plotnick) (04/24/84)

The 4.2bsd version of refer comes with tools to sort and print out
entire bibliographies, as well as a new manual written by Bill
Tuthill.  I prefer the U. Arizona ``bib'' package, which also comes
with 4.2bsd, because it seems easier to reconfigure to suit the
reference style you want.

Here are some bugs I've found so far in ``bib''.  (see also
<6620@arizona.UUCP> for another bug) Overall it's a very nice package.  

invert needs an exit(0) at the end of main so that it behaves well if
used in a Makefile.

several format files begin with a troff command (a \" comment containing
the sccs id; this is the result of being "Berkeleyized") rather
than bib format commands, thus, the format commands that do come
after this first line are copied into the document instead of being
interpreted by bib.

bib.opena contains a # line down where the troff commands belong, and
it was being copied to the output.

The macros to format references turn off hyphenation with .nh, but
never turn it back on.  I added a ``.hy 14'' in the e[ macro.  Ideally,
the macros should save/restore hyphenation state, but they probably
can't use environments because that would interfere with macro
packages.

bmac.std has an older version of itself concatenated onto the end, so
all the macros are defined twice and the older ones get used!  bib.supn
has a similar problem.

The MM package uses some string registers that begin with ``]'';
here are the available string registers beginning with ``]'':
	ABDGHIJKLMOPQRSTUVWXYijklmopqsu0789
It looks like there aren't any conflicts right now, but be careful
about using registers when extending the bib macros.

System V portability problems:

the global variable tmpfile conflicts with char *tmpfile() in stdio.h

index, rindex don't exist under System V.

install is totally different on System V; the -c option means "copy
the file to the following directory only if the file isn't there
already", and the -s option means "suppress error messages".
Until people agree on what install should do, I'll use cp.

%D doesn't exist any more; using %ld should be portable

Finally, here are some changes I made in the macros; if you're
sane you'll have typed ``q'' by now.



In the bmac.open macros for articles in books, there was a missing
comma before the editor field, and a spurious lone ``.'' on the line
after the editor field.  Also, "other information" field was always preceded by a
`` ,'', and this looked funny since the previous field ended with a ``.''.
So I moved the O field to its own line, because the open macros did so
for other reference types.

*** bmac.open.0	
--- bmac.open	
***************
*** 130,138
  in \\fI\\*([B\\fP\c
  .if !~\\*([V~~ , Vol \\*([V\c
  .if !~\\*([E~~ \{\
! .       ie \\n([E-1 , \\*([E, editors.
! .       el \\*([E, editor.\}
! .br
  \&.
  .br
  .if !~\\*([I~~ \\*([I\c

--- 130,137 -----
  in \\fI\\*([B\\fP\c
  .if !~\\*([V~~ , Vol \\*([V\c
  .if !~\\*([E~~ \{\
! .       ie \\n([E-1 , \\*([E, editors\c
! .       el , \\*([E, editor\c\}
  \&.
  .br
  .if !~\\*([I~~ \\*([I\c
***************
*** 139,145
  .if !~\\*([C~~ , \\*([C\c
  .if !~\\*([D~~ , \\*([D\c
  \&.
! .if !~\\*([O~~ , \\*([O.
  .e[
  ..
  .de 4[ \" report

--- 138,145 -----
  .if !~\\*([C~~ , \\*([C\c
  .if !~\\*([D~~ , \\*([D\c
  \&.
! .br
! .if !~\\*([O~~ \\*([O.
  .e[
  ..
  .de 4[ \" report

There's still a minor problem with books that have no authors (but do have
editors): the macros always do a .br after the author fields (if any)
are put out, so the first line of an entry may be blank.  I don't know
if this is part of the correct style or not, so I didn't touch it.


In bmac.std, the macros dealing with articles in books had an
extra blank after the volume number.

*** bmac.std.old
--- bmac.std	
***************
*** 101,107
  .if !"\\*([A"" \\*([A,
  .if !"\\*([T"" \\*([T,
  in \\fI\\*([B\\fP\c
! .if !"\\*([V"" , vol. \\*([V
  .if !~\\*([E~~ \{\
  .       ie , \\n([E-1  \\*([E (editors)\c
  .       el , \\*([E (editor)\c\}

--- 101,107 -----
  .if !"\\*([A"" \\*([A,
  .if !"\\*([T"" \\*([T,
  in \\fI\\*([B\\fP\c
! .if !"\\*([V"" , vol. \\*([V\c
  .if !~\\*([E~~ \{\
  .       ie \\n([E-1 , \\*([E (editors)\c
  .       el , \\*([E (editor)\c\}
***************
*** 103,109
  in \\fI\\*([B\\fP\c
  .if !"\\*([V"" , vol. \\*([V
  .if !~\\*([E~~ \{\
! .       ie , \\n([E-1  \\*([E (editors)\c
  .       el , \\*([E (editor)\c\}
  .if !"\\*([I"" , \\*([I\c
  .if !"\\*([C"" , \\*([C\c

--- 103,109 -----
  in \\fI\\*([B\\fP\c
  .if !"\\*([V"" , vol. \\*([V\c
  .if !~\\*([E~~ \{\
! .       ie \\n([E-1 , \\*([E (editors)\c
  .       el , \\*([E (editor)\c\}
  .if !"\\*([I"" , \\*([I\c
  .if !"\\*([C"" , \\*([C\c


In the macros for the SP&E style, dealing with conference articles, 
if there's no city specified you'll get 2 commas in a row.  I'm not
sure how to solve this, because the conference references I saw in an issue
of SP&E here didn't match what the macros would produce, anyway.

If you change all the left brackets above to right brackets, you'll probably
get a TECO program that prints out Pig Latin.

	Mark Plotnick