17

I am working on an article for a Springer journal, and the specifications for manuscripts clearly ask to italicize all journal names and book titles. Doing it manually feels stupid, so I wonder if there's a way to make the BibTeX style do the trick for me. I am currently using spbasic.bst (natbib compatible stuff), and I have no experience in the obscure .bst language. Any hints?

yo'
  • 51,322

2 Answers2

16

As you say, the BibTeX stack language is a bit tricky. Here, we need to alter two functions. In a renamed copy of spbasic.bst, you first want to make journal names italic by altering FUNCTION {article}. It contains the lines

journal
remove.dots

which need so be altered to

journal
remove.dots
"\emph{" swap$ * "}" *

To alter book titles, changes are needed to FUNCTION {format.btitle}, which is short so I'll reproduce in full

FUNCTION {format.btitle}
  { 
    title "title" bibinfo.check
    duplicate$ empty$ 
      'skip$
      {
       "\emph{" swap$ * "}" * 
      }
     if$
}

In both cases, we are working with a stack containing 'the thing to be made italic'. First, I've added \emph{ to the stack, then used swap$ to put the thing after \emph{ on the stack. The * concatenates the two, then I add } to the stack and concatenate again.

Joseph Wright
  • 259,911
  • 34
  • 706
  • 1,036
  • Thank you very much, it works like magic! Could you please add the missing " after the first } in the first code bit to make it completely copy-pastable? – anna-earwen Aug 18 '12 at 19:30
  • 1
    How would I use this to italicize the booktitles of conference proceedings? I bet the same line of code is usable, but I can't figure out where to paste it. :) – anna-earwen Aug 18 '12 at 19:42
  • 3
    @anna-earwen I guess you want to modify inproceedings (the above change should alter proceedings entries). To do that, in the FUNCTION {inproceedings} change the format.title "title" output.check to format.btitle "title" output.check. – Joseph Wright Aug 18 '12 at 19:48
  • 1
    Would it make sense to modify the FUNCTION {format.booktitle} to look something like booktitle "booktitle" bibinfo.check "\emph{" swap$ * "}" *? It seems to work, I wonder if it covers all possible "booktitles" of the BibTeX entries. Thanks again for the help! – anna-earwen Aug 18 '12 at 19:54
  • @anna-earwen The style you've linked to was created using custom-bib. If you want to make more complex changes, I'd be tempted to rerun that system: manual changes may well go wrong. – Joseph Wright Aug 18 '12 at 19:58
  • 3
    And yet they distribute it with a Springer template, which makes me wonder :) – anna-earwen Aug 18 '12 at 20:04
1

To those who wonder and (possibly) struggle with Springer and their double standards (OK, I never said that): here's my take on BibTeX formatting, a manually modified spbasic.bst: spbasicemph.bst. It brings the bibliography format as close to Springer Swarm Intelligence journal standard as I could get.