[Tex/LaTex] How to change syntax of chicago.bst

bibtexchicago-stylenatbib

I use

\usepackage[round,authoryear]{natbib}
\bibliographystyle{mychicago}
\bibliography{XYZ}

I modified Chicago.bst to Mychicago.bst following this description:
How to remove parentheses from year in the references in chicago bibliography style and I replaced "{vv~}{ll}{, jj}{, f.}" with "{vv~}{ll}{, jj}{, ff}", and "{f.~}{vv~}{ll}{, jj}" with "{ff~}{vv~}{ll}{, jj}" (under format.names. ,starting on line 387 in the copy of the file).
How to do Chicago-style citation where author last name, first name appear in full in bibliography using the natbib and bibtex?

Now I have the problem that my bibliography displays dots and commas and the wrong places when there are several authors. e.g

@article{Kongsamut,
author = {Piyabha Kongsamut and Sergio Rebelo and Danyang Xie},
journal = {The Review of Economic Studies},
number = {4},
pages = {869-882},
publisher = {Oxford University Press, Review of Economic Studies, Ltd.},
title = {{Beyond Balanced Growth}},
volume = {68},
year = {2001},
}

and it gets displayed:

Kongsamut, Piyabha., Sergio. Rebelo, and Danyang. Xie 2001. Beyond
Balanced Growth. The Review of Economic Studies 68(4), 869–882.

I would like it to display like

Kongsamut, Piyabha, Sergio Rebelo and
Danyang Xie. 2001. Beyond Balanced Growth. The Review of Economic
Studies 68(4), 869–882.

However, this problem occurs only if there is more than one author. Otherwise it works just fine.

Can someone tell me how to adjust my .bst file? thanks!

As indicated by @AlanMunn I did not delete .. However, my question still stays open, why there is no dot after the last last name (Xie in this example) and how to add a comma after the name of the journal (The Review of Economic Studies in this example)

Best Answer

To make the further changes you need you need to do the following.

In the function output.year.check add a ". " before the year is output. This will add the . after the last name in the list.

FUNCTION {output.year.check}
{ year empty$
     { "empty year in " cite$ * warning$ }
     { write$
        ". " year * extra.label * % <------- added ". " here
       month empty$
          { "" * }
          { ", " * month * "" * }
       if$
       mid.sentence 'output.state :=
     }
  if$
}

To put a comma after the journal name create a new function. This is a copy of the function emphasize.space but adds a comma. (Don't replace the emphasize.space function, as it is needed for other things.) I added this function right after the emphasize.space function in the .bst file.

FUNCTION {emphasize.comma}
{ duplicate$ empty$
    { pop$ "" }
    { "{\em " swap$ * "\/,}" * }
  if$
}

Now change the following in the format.jour.vol function. (Partial code here).

FUNCTION {format.jour.vol}
{ journal empty$
    { "no journal in " cite$ * warning$
      "" }
    { journal emphasize.comma } % changed emphasize.space to emphasize.comma
    if$

This should do what you want.

\begin{filecontents}{\jobname.bib}
@article{Kongsamut,
author = {Piyabha Kongsamut and Sergio Rebelo and Danyang Xie},
journal = {The Review of Economic Studies},
number = {4},
pages = {869-882},
publisher = {Oxford University Press, Review of Economic Studies, Ltd.},
title = {{Beyond Balanced Growth}},
volume = {68},
year = {2001},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\bibliographystyle{chicago-ff}

\begin{document}
\cite{Kongsamut}
\bibliography{\jobname}
\end{document}

output of code