Difference in key generation for same entry in Linux vs Windows

Hello,

I have two issues.

Consider the following contents of a .bib file:


% Encoding: UTF-8

@Article{abcdef,
  author    = {F1 L1 and F2 L2},
  year      = {1999},
  title     = {Silent storage venues require pension},
  journal   = {Famous journal},
  volume    = {123},
  pages     = {1--100},
  number    = {1},
  publisher = {The Publisher},
}

@Comment{jabref-meta: databaseType:bibtex;}

@Comment{jabref-meta: saveOrderConfig:specified;author;false;year;false;title;false;}

On Linux (JabRef 3.8.2 linux 5.15.0-53-generic amd64 Java 11.0.17), opening this file and generating the bibkey with keypattern being

[authorsAlpha:lower][shortyear][title:abbr][journal:abbr][volume][number][firstpage][lastpage]

generates key : ff99SsvrpFj12311100

Although the above version information in Linux seems rather old, I installed this by using the jabref_5.7_amd64.deb package available at JabRef download latest version

Repeating the same exercise on Windows Jabref (JabRef 5.7–2022-08-05–73c111c Windows 10 10.0 amd64 Java 18.0.2 JavaFX 18.0.1+2)

generates key : ff99SSVRPFj12311100

(note different capitalization on abbreviation of article title.) This is causing my main latex document to not cite this article.

Furthermore, on saving this in Windows, I obtain the following ordering of entries in the .bib file: author, journal, number, pages, title, volume, year and publisher.

Note the difference in this saved order between Linux and Windows. This is causing me issues in git version control where unnecessarily, the same entry is flagged as having changed when in reality it has not – the file has just been saved differently by Linux and Windows Jabref.

Is there a way to fix both these issues so that Linux Jabref and Windows Jabref perform identically?

Thank you.

This looks like a bug. Could you please file a bug at Github?

Relevant docs: Citationkey Generatior - Modifiers:

[title:abbr] would from the title An awesome paper on JabRef produce AAPoJ

therefore, the expected outcome for JabRef 5.x and 4.x and obviously in both Windows and Linux would probably be: ff99SSVRPFj12311100

JabRef 3.x and JabRef 5.x are different. If you come from such an old JabRef version, it is best to completely reset your preferences and manually re-enter them.

Workarounds:

  1. Workaround that equalizes with JabRef 3.8, but might break other citationkeys: add :sentencecase to title key pattern.

  2. Workaround to avoid changes in git version control system: Add :lower (Forces the text inserted by the field marker to be in lowercase) wherever possible.

Thank you.

I am surprised that despite my installing the .deb package jabref_5.7_amd64.deb from the official download page for linux, only (?) version 3.8.2 was installed on my linux system. Am I right in this interpretation? Should I not see a JabRef 5.7 linux 5.15.0-53-generic amd64 Java 11.0.17 in linux?

Should I uninstall and reinstall with the most recent deb package? If I should try that before opening an issue on github, could you let me know how to completely uninstall Jabref 3.8.2 (?) on my linux system? Is it just $ sudo apt-get purge --auto-remove jabref ?

I don’t know how to uninstall on your system. I guess that depends on your version of Linux, but yes your command seems about right. It will also clean the configurationfiles. Before you upgrade to the newer version, I would suggest to make a backup of your old configuration.

You can see what version of JabRef you use when you open JabRef and click on Help > About JabRef. You should NOT see Java 11 there. JabRef 17 uses Java 18, if I remember correctly. I personally use the portable version of JabRef on my Linux system in order to not have any problems when upgrading my Linux Operating System. That also has the advantage that Java and JavaFX come already packaged with JabRef and with this approach, there is no need to install it separately and keeping Java/JavaFX up to date, just because a new version of JabRef was installed. Of course, I manually need to download a new portable version of JabRef from time to time. I am not sure if .deb are similar in this regard.

To conclude: yes, I would suggest to uninstall and reinstall, unless you prefer to go the portable route.

On downloading the latest .deb file – jabref_5.7_amd64.deb – and opening it within Ubuntu via “Software Install”, I get the following image which stubbornly insists that the version going to be installed will only be “3.8.2+ds”

Please see image https://imgur.com/6wpMFiq

Is there some other installation method I should use to get latest version 5.7 on Ubuntu?

I was able to confirm using the portable install that the bug goes away and the portable version does indeed provide version 5.7 in JabRef/bin folder. However, I would rather have the .deb install and not the portable install.

hmmm, there are multiple ways how a programm could be installed on Ubuntu: Have a look at How To Install Software in Ubuntu Linux: A Complete Guide for Newbie and 4 Ways to Install DEB Files on Ubuntu/Linux, Debian: Easy Guide

1 Like

since you still get 3.8, there is probably a dependency problem, some leftover configuration files or conflicts with ubuntus package repository. Debian still comes with JabRef 3.8, so maybe you have set your package sources to come from a specific debian repository or something?

Instead of going the .deb way, I ran “snap install jabref” as suggested on the downloads page and I seem to have been able to install version 5.7 on Ubuntu. Let me retest the above and update this thread if I continue to encounter the bug.

Thanks @ThiloteE for all your help.

1 Like