[texhax] Bug in plainnat.bst?
Edsko de Vries
edsko at edsko.net
Sat Aug 23 12:29:20 CEST 2008
Hi,
I am using the crossref feature of bibtex to cross-reference articles in
conference proceedings. The problem starts when those proceedings do not have
an editor; for example:
@inproceedings{hage:usageanalysis,
crossref = {ICFP07},
author = {Jurriaan Hage and Stefan Holdermans and Arie Middelkoop},
title = {A generic usage analysis with subeffect qualifiers},
pages = {235--246},
}
@proceedings{ICFP07,
title = {ICFP '07: Proceedings of the 2007 ACM SIGPLAN international conference on Functional programming},
booktitle = {ICFP '07: Proceedings of the 2007 ACM SIGPLAN international conference on Functional programming},
year = {2007},
publisher = {ACM},
key = {ICFP07},
}
(Since ACM proceedings do not have editors, the most logical key to use for
cross-referencing is the mnemonic for the conference.)
With the plainnat.bst style, the entry for hage:usageanalysis will be formatted
as
Jurriaan Hage, Stefan Holdermans and Arie Middelkoop. A generic usage
analysis with subeffect qualifiers. In ICFP07 ICFP07, pages 235--246.
Note the double occurrence of the key. In plainnat.bst, this is caused by the
line marked by the arrow in:
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
""
}
{ "In \emph{" booktitle * "}" * }
if$
}
{ "In " key * } <--------------
if$
}
{ "In " }
if$
" \citet{" * crossref * "}" *
}
Since that line outputs the key, which is then *again* output by the citet at
the very end, the key is duplicated in the output. I think this line should be
modified to just
{ "In " }
unless perhaps I am abusing the entries in some way.
Edsko
More information about the texhax
mailing list