12

I have a BibTeX file containing many references, where the journal titles are (for the most part) written out in full. I would like to replace these in my reference list with the standard abbreviated titles.

Searching the web I can find many suggested solutions to this problem. These all seem to involve maintaining either maintaining your own database of search-and-replace strings, using a GUI reference manager (Jabref), or editing the whole .bib file so that every journal name is a macro call.

My .bib file has 171 entries (it was originally the references for my thesis and I've kept adding to it since then, using the same file for every paper), so creating and maintaining my own database of journal abbreviations would be a huge undertaking. While I will just start using Jabref if I have to, it doesn't seem right that I should have to use a GUI package to solve such an inherently text-based problem.

What I really want is a script (or even better, a LaTeX package) that will just go through my .bib file and replace every full journal name with an abbreviation looked up in one of the many standard databases that exist for this purpose. (Of course there will probably be some that get missed, but I don't mind fixing one or two by hand.)

I'm guessing that such a painless, transparent solution doesn't exist, but it can't hurt to ask here. It seems to me that this must be a very common thing to want to do, and I'm kind of surprised that the functionality isn't just built into BibTeX in the first place.

1

5 Answers 5

9

I do this. I have a file called journalshort.bib, with many entries of the form

@STRING{aiaa    = "AIAA J."}

and one called journalfull.bib with corresponding entries like

@STRING{aiaa    = "American Institute of Aeronautics and Astronautics Journal"}

When calling \bibliography, I use a user option to decide which of the two to pass as an additional argument (additional to their own .bib file). Then, in their .bib file, they can merely say

JOURNAL = aiaa,

as part of the entry. But of course, one has to create these added bib files, which you say you don't want to be bothered with.

2
  • 2
    Thanks - but the thing is, my .bib file has 171 entries, so creating these additional files would be a mammoth undertaking. Of course, if I'd done it this way from the beginning it would be a different story.
    – N. Virgo
    May 1, 2013 at 12:26
  • 6
    You may have 171 entries (mine had about 700 by the time I was done with my thesis), but they probably aren't from 171 different journals. You could brute force it with a search and replace and probably only have to change 20-30 unique items at most. You could also hack together @Steven's files starting with the journal abbreviation lists on the JabRef resources page. If you are continuing on in your field, your bib file will only get longer. Better to do it now than wait.
    – craigim
    May 1, 2013 at 15:54
5

I don't know what you are working on, but for example IEEE has its own .bib file (IEEEabrv.bib) with the abbreviates (available here).

Perhaps you could either use this one or consult within your specific field if there is a file like this

3

Searching around for an answer to similar question as I didn't want to manually process multiple bibliographies, I just found the package jabbrv http://www.compholio.com/latex/jabbrv/ After about 5 minutes of playing with it (including undoing the existing bibliography commands) I've found that it seems to do a good job of abbreviating the names of journals in biochemistry, molecular biology, or similar.
This should be worth a try.

2

Thought of answering this question even though it was posted 5 years back. I had the same problem until I started using Mendeley. In Mendeley when you export the BibTex file you have the option to export it with journal abbreviations (thank god for that). Really grateful to mendeley, made my life easier in so many ways

1
  • 1
    In version 1.19.3: Go to Settings > BibTeX > Use Journal Abbreviations. If you are using BibTeX syncing as well, then all bib files will be converted to abbreviations.
    – iled
    Jan 11, 2019 at 21:29
1

There is a github package that solves this problem automatically with no need to go in and revise anything by hand: https://github.com/compholio/jabbrv

Additionally this package has been incorporated into an Overleaf template: https://www.overleaf.com/latex/templates/automatic-journal-abbreviations/mxfsdscmvxcr

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.