How to manage publications on a local computer

For the filename, I use a system that I plagiarised from my PhD supervisor:

aaaadd_xxxx_jjj.pdf

where:

  • aaaa: name of the first author (variable length)
  • dd: 2-digit year of publication (fixed length)
  • xxxx: first word of title, minus articles and other small words (variable length)
  • jjj: abbreviation of journal of publication (variable length, but short)

I then use the same without the .pdf as my bibtex key (with an added :).

For example:

T. Penguin et al, a Survey of Antarctic Leasure Activities, Journal of Improbable Results, 2025

would be

penguin25_survey_jir.pdf

with the bibtex key penguin25:_survey_jir.

I like this system because:

  • I'm used to it
  • Filenames remain compact and UNIX shell friendly
  • The encoded information is usually enough for me to identify the paper

It doesn't cover tagging or categorising.

This applies well to journal articles. For conference proceedings articles or books, the journal acronym is replaced by an acronym of the conference or the publisher, or perhaps the full name of the publisher; I'm not fully consistent there. But I don't usually have entire books as PDFs anyway.


There is lots of software out there which can help (e.g., Mendeley). I used this (and others) but found it would take more management than I would care to give.

Personally, I just had a publications folder with nested sub-folders for different topics. I would then simply name the .pdfs using the last name of the first author and the year of publication, that is: lastname_2019.

I found this had several advantages:

  1. It's easy to remember. In discussion with peers I could easily refer them to a paper by lastname in 2019. It's great to be able to do this easily and helps your reputation. The alternative is discussing with peers who just vaguely remember the contents of a paper but can't remember the title or authorship.
  2. It's easy to search for the paper using (for example) spotlight in macOS. I just typed in the last name and all their papers would come up. Also helps in memorising the authors last name. I relied on this heavily and never really searched the publications folder.
  3. If using LaTeX, I could easily remember what papers I wanted to cite and as I set the bib reference to the lastname_2019 format, I had no more information to remember.

Of course, if a person publishes multiple papers in a year, I would just append a letter to the add. To be honest, I think I only had to do this once or twice for my field.


I manage publications with JabRef in a bibtex database. It is possible to add a link to the filename with JabRef in the bibtex database.

A python script pybibtexcleaner transcribes the special characters in the title and moves all sorted files to one folder with file names in the format

bibkey-title.pdf

The script will generate from a bib entry

@Article{Stein2017a,
  author    = {J. Stein and M. Baum and S. Holbein and T. Finger and T. Cronert and C. Tölzer and T. Fröhlich and S. Biesenkamp and K. Schmalzl and P. Steffens and C.H. Lee and M. Braden},
  title     = {Control of Chiral Magnetism Through Electric Fields in Multiferroic Compounds above the Long-Range Multiferroic Transition},
  journal   = {Physical Review Letters},
  year      = {2017},
  volume    = {119},
  number    = {17},
  doi       = {10.1103/physrevlett.119.177201},
  file      = {:../included/119.177201.pdf},
  publisher = {American Physical Society ({APS})}
}

the new filename

Stein2017a-Control_of_Chiral_Magnetism_Through_Electric_Fields_in_Multiferroic_Compounds_above_the_Long-Range_Multiferroic_Transition.pdf`

and copy the file to ../articles/ and also adjust the path in the .bib file.

It is very useful if the filenames start with the bibkey. You should always use all digits of the year.

The script can also transcribe chemical formulas in a readable way, if they are introduced with \ce as in \ce{H2O}.

You can keep track of your work with git and you can restore old versions or synchronize the literature database on your different systems.

ps: I use the old stable 3.8.2 version of JabRef, because the new versions 4.x were less stable when I tried them. The user has better control on the rename process with the short python script and can easily adjust it to the needs, but recent JabRef versions are shipped with similar functionality.

Tags:

Publications