[Tex/LaTex] Citing book chapter for a Springer journal using BibTeX

apa-stylebibliographiesbibtexciting

A Springer Journal requires the authors to cite a Book Chapter in exactly the following way:

O’Neil, J. M., & Egan, J. (1992). Men’s and women’s gender role journeys: Metaphor for healing, transition, and transformation. In B. R. Wainrib (Ed.), Gender issues across the life cycle (pp. 107–123). New York: Springer.

To comply with other citation style requirements, I'm using apalike bibliographystyle. However, when I use the @incollection type in BibTeX I get the following output:

O’Neil, J. M., and Egan, J. (1992). Men’s and women’s gender role journeys: Metaphor for healing, transition, and transformation. In Wainrib, B. R., editors, Gender issues across the life cycle, pages 107–123. New York: Springer.

Thus, instead of Wainrib, B. R. I get B. R. Wainrib; instead of (Ed.), I get , editors, and instead of (pp. 107-123). I get , pages 107-123.

What do I need to do to obtain the correct citation style? Is there maybe some helpful trick to make it work?

I tried other styles (chicago, apacite, apa, plainnat, spbasic), without success.

My BibTeX code:

@incollection{ONeil1992,
author="O'Neil, J. M. and Egan, J.",
title="Men's and women's gender role journeys: Metaphor for healing, transition, and transformation",
editor="Wainrib, B. R.",
booktitle="Gender issues across the life cycle",
year="1992",
publisher="New York: Springer",
pages="107--123"
}

Thanks

Best Answer

In case anyone stumbles across the same problem, here is how you can modify apalike.bst (available here) to obtain the required citation style (also, between the authors' names and is replaced by &):

  1. Paste the following function below FUNCTION {format.names}{ ... }:
FUNCTION {format.editor.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't :=   % last name first
      nameptr #1 >
        { namesleft #1 >
            { ", " * t * }
            { numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { " et~al." * }
                { " \& " * t * }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}
  1. In FUNCTION {format.editors} replace the line { editor format.names with { editor format.editor.names
  2. In the same function replace { ", editors" * } with { " (Eds.)" * } and { ", editor" * } with { " (Ed.)" * }
  3. In FUNCTION {format.pages} replace { "pages" pages n.dashify tie.or.space.connect } with { "(pp. " pages n.dashify * ")" * tie.or.space.connect } and { "page" pages tie.or.space.connect } with { "(p. " pages * ")" * tie.or.space.connect }
  4. In FUNCTION {format.names} replace { " and " * t * } with { " \& " * t * }
  5. Finally, in FUNCTION {format.chapter.pages} remove the comma from { ", " * format.pages * }