Add period to end of last author (Biology Letters .bst)

I had an issue today where I wanted to create a custom .bst file for Biology Letters that would format as follows:

1. Parmesan C, Yohe G. 2003 A globally coherent fingerprint of climate change impacts across natural systems. Nature 421, 37–42.

I was using makebst, incrementally editing my .dbj file, but I couldn’t seem to get that ‘.’ on the end of the author list to come out. The problem seemed to be some interaction between the default for blocks and authors.

My options for author were


%<>PUNCTUATION AFTER AUTHORS:

So going with the default invoked (I think) this section of the .dbj file


%<>PUNCTUATION BETWEEN SECTIONS (BLOCKS):

Unfortunately the “else commas” up there means commas after the author block. So the combination above was producing

1. Parmesan C, Yohe G, 2003 A globally coherent fingerprint of climate change impacts across natural systems. Nature 421, 37–42.

When I tried going for the default, i.e.


%<>PUNCTUATION BETWEEN SECTIONS (BLOCKS):

I was still getting a comma. I’m not sure what the openbib option is so that might have been the answer there.

Instead, my solution (if you can call it that) was to leave the punctuation between sections as default, and change the author section to


%<>PUNCTUATION AFTER AUTHORS:

I then went into the .bst file and initially tried to replace all instances of ‘add.colon’ with ‘add.period’, but when that didn’t work, I found the ‘add.colon’ function and put a new ‘add.period’ function under it.


FUNCTION {add.colon}
{ duplicate$ empty$
 'skip$
 { ":" * add.blank }
 if$
}

FUNCTION {add.period}
{ duplicate$ empty$
 'skip$
 { "." * add.blank }
 if$
}

The .bst file now produced what I needed.

You can find the .bst files here: biologyletters.bst, biologyletters.dbj.

4 thoughts on “Add period to end of last author (Biology Letters .bst)

  1. I’m having the very same problem. What drives me crazy is that I have my old .bst file which does precisely what we want. I’m pretty sure I did not have to edit the .bst file manually when I created it. So I know that it is possible to solve this with using the standard options of makebst.

    Unfortunately, the old .bst file is on another computer to which I won’t have access for a while. But there is a solution…

    1. Ah, so there is a way to do it. It did seem odd to me that there wouldn’t be, but after much Googling I just couldn’t find it. Well, at least this is one way, even if an inelegant way. If anyone drops the answer in the comments I’ll be happy to update.

  2. My old bst file is in Australia, but I’m not and won’t be back for a couple of months… When I return, I’ll try to remember to post the solution.

    But perhaps a bug report should be filed against makebst in any case. This should be very easy to do, given that most author-year bibliography styles do put a period after the author block.

  3. I know this is quite an old thread, but I’ve been trying to do the same thing.

    I found that using the default for “newblock after blocks (periods or new lines with openbib option)” did work. It was confusing for me at first, because it did not seem to work when I ran pdflatex on the .tex file. But when I then subsequently ran bibtex and the pdflatex again, it worked perfectly.

Leave a Reply