14

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.

N. Virgo
  • 4,289
  • 2
  • 26
  • 41
  • related: https://tex.stackexchange.com/questions/33441/how-to-abbreviate-journal-name-in-citation – matth Jan 30 '20 at 08:17

7 Answers7

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
    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 01 '13 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 01 '13 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

Mario S. E.
  • 18,609
4

Searching around for an answer to similar question as I didn't want to manually process multiple bibliographies, I just found the package jabbrv https://github.com/compholio/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.

Compholio
  • 453
Jason Whyte
  • 1,408
3

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

Waves
  • 31
  • 2
    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 '19 at 21:29
2

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

Shep Bryan
  • 209
  • 1
  • 6
0

Just adding my two cents for anyone using Zotero and encountering this problem, as Zotero by default will give the long version of every journal name.

Zotero supports exporting .bib files with abbreviated journals, both with built-in BibTeX support and plugins like Better BibTeX.

Right click on the collection > Export Collection... > choose Better BibTeX or BibTeX > check "Use Journal Abbreviation".

0

My solution:

pipx install bibiso4
bibiso4 your_refs.bib > iso4_refs.bib
innisfree
  • 598
  • 5
  • 17