30

I'm writing my research proposal and my supervisor wants me to abbreviate the journal name (and remove part of the month from the publication date). How can I achieve that?

Edit: I am using BibTeX and my .bib file holds the full journal name. I writing using Emacs on an Arch Linux machine. I don't really mind switching to other LaTeX format but I don't know anything about them.

  • 6
    This is very little information. How do you create your references? Do you use bibtex and a bitex style or are you using biblatex. Long story short, please provide a minimal working example. – Martin H Nov 2 '11 at 12:55
  • 2
    If you have to quickly finish the proposal, I recommend to duplicate and open the .bib file and use the search and replace function of your preferred editor to simply replace the journal names with appropriate abbreviations. You can also delete the month entries. Ugly, but quick... – Andy Nov 3 '11 at 6:36
  • 1
    @Andy: As you said, ugly but quick. I was hoping for something more general for future work. Thanks. – Yotam Nov 3 '11 at 7:42
  • for mathematical citation, I use the amsscinet database, which include the journal and fjournal filed, the journal field is the abbrevation. – user19832 Mar 7 at 5:36
28

A while back I created a package and some BibTeX styles for automatic journal abbreviations that uses the ISSN database to do exactly this: http://www.compholio.com/latex/jabbrv/

  • 2
    @Comppholio Is this on CTAN? I've wondered in the past about providing something that at least in the first instance looks similar (i.e. a 'magic' macro that converts full names to abbreviations), so I'll be taking a look at how you've tackled this. – Joseph Wright Aug 12 '12 at 6:57
  • 2
    @Joseph No, I've not yet contributed anything to CTAN. I recently got tired of making new BibTeX styles all the time and decided to use some of the techniques from developing jabbrv to make a package that processes BibTeX files using a simpler style file syntax. – Compholio Aug 15 '12 at 15:32
  • Very good package!!! It also abbreviates initials. It is very easy to use. Just copy sty, bst, and ldf files to your working directory. – Kadir Jun 11 '13 at 5:12
  • Dear @Comppholio, is it also possible to remove the long line which is automatically put for repeated authors in consecutive references? – Kadir Jun 11 '13 at 5:21
  • 1
    @AnonymousPhysicist It's not that difficult to modify the styles, and I do have one: github.com/compholio/jabbrv/blob/master/jabbrv_apsrev4-1.bst – Compholio Jul 2 '18 at 13:26
22

EDIT: There is an elegant way now with biber 0.9.6. Together with biblatex 1.7. the data can be changed on the fly without changing the input .bib file itself. It utilizes the map feature of biber as described in section 3.1.1 of the manual. The biber.conf file looks like this:

<map>
  <bibtex>
  BMAP_OVERWRITE 1
    <globalfield journal>
      BMAP_MATCH Physical\sReview
      BMAP_REPLACE "Phys. Rev."
    </globalfield>
  </bibtex>
</map>

which would replace Physical Review with Phys. Rev. Please find a verbose explanation in my answer to this question.

/EDIT

One possible way would be to come up with a work abbreviation. Then, you use the editor of your choice and search and replace the journal title with the work abbreviation. Let's say the journal is A long journal name and you call it alj. You replace Journal={A long journal name} with Journal=alj in the bibtex file. Now, you can make two bibtex files: short.bib and long.bib with the content @string{alj="A l. J. N."} and @string{alj="A long journal name"}, respectively. Whenever you feel like it, you can add another way to display the journal title.

MWE (you could have provided that):

\documentclass{article}

\begin{document}
Test\cite{brown08}

\bibliography{long,cvpubs}
\bibliographystyle{unsrt}

\end{document}

use either \bibliography{long,cvpubs} or \bibliography{short,cvpubs} for long or short journal titles.

cvpubs.bib:

@article{brown08,
    Author = {Seth Brown and Michael Cole and Albert Erives},
    Journal = alj,
    Title = {Evolution of the holozoan ribosome biogenesis regulon},
    Volume = {9},
    Year = {2008},
    Pages = {113}

short.bib:

@string{alj="A l. J. N."}

long.bib

@string{alj="A long journal name"}

leading to

short example and long example

  • 1
    Please note the the biber config file format will change for biber 0.9.7 because the current one is not easy to extend and it a bit confusing for the mapping options. The new one is XML and much easier to understand for mapping options. The manual has been re-written for 0.9.7 with examples. You can get 0.9.7 beta from sourceforge now in the development folder. – PLK Nov 25 '11 at 9:02
14

You should be aware that the abbreviation is not arbitrary, because there is the standard ISO 4 that defines a List of Title Word Abbreviations (LTWA). As far as I know, every abbreviation is unique, so that abbreviating/un-abbreviating should work unambigously in both directions.

The CAS has a small online tool CASSI that can be used to search for journal names and/or their official LTWA abbreviation.

JabRef has a journal name abbreviation feature that also uses the LTWA. This feature can be configured under Options → Manage journal abbreviations.

11

I have made a little Python script that processes a bibtex database, searching for the journal names and replacing them with their official abbreviation (taken from the Jabref source): https://gist.github.com/FilipDominec/9ff081952dbc4aae1df657a56c3db4ea

  • I wanted to do that for so long now. I'll have a look at it – Yotam Apr 9 '16 at 9:54
  • 2
    It took some 20 minutes to write the script. But it is surprisingly nontrivial to find an usable list of journal names... The world's academic community is obviously missing some central source of such information. – dominecf Apr 9 '16 at 10:18
  • 1
    It lacks so much.... – Yotam Apr 9 '16 at 19:13
  • @Yotam you could of course still implement the un-abbreviation feature... – matth Feb 16 '17 at 8:07
  • 1
    This script just does a find replace based on all the text in the bibtex file and I found that it replaces things in abstracts etc. if the journal title isn't specific enough. – salotz Dec 19 '17 at 22:32
6

betterbib (a small project of mine) now gives you a choice on the journal names; short ones are the default. Simply install with

pip install betterbib

and run it over your bib file:

betterbib your.bib out.bib

Use --long-journal-name/-l to switch to long journal names.

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.