Friday, March 20, 2009

natbib-compatible BST file for Royal Socety journals

I just whipped up rspublicnat.bst, which is a natbib-compatible BibTeX style file (BST) for the Royal Society journals (e.g., Proceedings of the Royal Society A and B and others).

FYI, the BST can be regenerated by applying LaTeX (i.e., docstrip) to rspublicnat.dbj and then applying rspublicnatbst.patch (with patch) to the resulting BST file. The patched result should closely match the Royal Society's bibliographic conventions for both in-line and listed references.

gleed said...

thank you so much for this! you saved me many hours of searching for a compatible .bst file...

Thanks again!

All the best,
Emma Doyle

Leithen said...

Hi there,
Just wondering how to get this .bst file to put my refernces in the order in which they are cited. Currently it puts them in alphabetical order.

Ted said...

Leithen - at the time I posted this, it was the convention of most RS journals to alphabetize references. You should make absoultely sure you actually want to put them in citation order---you might be asked to re-order them at either the revision or proof stage.

Unfortunately, there's no general sort flag that you can flip without having a little background knowledge in BST syntax (which is a postfix language, which can be strange to interpret at first).

At least for your draft submission, I recommend you generate your own BST file. From a command prompt in the same directory as your TeX source, run the command:

latex makebst

which will start an interactive script (maybe 50-ish questions) that will let you customize how your BST looks (and should let you pick sort order). It will then generate a ".dbj" file which you can run LaTeX on to generate the bst. For example, if you named the generated dbj "mystyle.dbj", you would then run:

latex mystyle.dbj

to generate "mystyle.bst" which you could then use within your LaTeX document with \bibliographystyle{mystyle}.

The "makebst" script naturally produces natbib-compatible BST files (in fact, it is written by the natbib author). So it is a handy tool to have.

Alternatively, you can start with the DBJ file from when I ran makebst:

You can then remove the % at the beginning of the line that has "seq-no" in it. Running latex on the resulting DBJ should give you a passable BST.

Either way, the BST generated may not fit the RS conventions perfectly (that's why I had to generate a patch file showing how I tweaked mine), but it should get pretty close. Hopefully the editor will make any other needed changes in the proof stage and just ask you to approve them.

I hope that helps.

Sam Ocko said...

For the lazy, I generated the bst,

http://web.mit.edu/~socko/Public/rspublicnatwithsort.bst

Sam

Ted said...

Sam --

Just to confirm, your BST has been generated by using the instructions in my previous comment? That is, by turning on the seq-no docstrip option and then regenerating the BST, right?

Best --
Ted

Lizzy said...

I am preparing a manuscript for Royal Society Interface. How can I get each \item entry in the bibliography to start with a number like [1]?

Ted said...

Lizzy -- See the natbib documentation. You should be able to do something like...

\usepackage[numbers]{natbib}
\bibliographystyle{rspublicnat}

That is, a natbib-compatible BST can work with either citation style (numbers or Harvard). You just specify in your inclusion of natbib which one you want. The option for numbered citations is "numbers".

Marco Pistoia said...

Wow, this was extremely helpful, Ted. Thank you very much for sharing this work with everyone.