Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This feature can be toggled and configured under Preferences → Advanced.
Note that activating this feature under Windows XP SP2 (and possibly other configurations) may prompt a message box stating that certain features of the program have been blocked by the Windows firewall. You can safely tell the firewall to keep blocking - the firewall will not interfere with remote operation of JabRef.
If listening for remote operation is enabled, JabRef will at startup attempt to start listening to a specific port. This means that other applications can send information to JabRef through this port. JabRef will only accept local connections, to avoid the risk of interference from outside.
Binding to this port makes it possible for a second JabRef instance to discover that the first one is running. In this case, unless specifically instructed to run in stand-alone mode, the second JabRef instance will pass its command line options through the port to the first JabRef instance, and then immediately quit.
The first JabRef instance will read the command line options, and perform the indicated actions, such as reading or importing a file, or importing a file to the currently shown database. If a file is imported using the command-line option --importToOpen
, the imported entries will be added to the currently shown database. If no database is open, a new one will be created.
Group for your own papers: author=YOURSELF
Group for the papers of your group: author=YOURSELF and author=COLLEAGUE1 and author=COLLEAGUE2
See Groups for more information on grouping.
Sort your entries with the bibtexkey
on save (can be set in the database properties). This makes finding an entry easier in a large file.
Use Quality -> Integrity Check
often to ensure that the quality of your database does not degrade. See Check Integrity for more information.
Specify your save actions (can be set in the database properties). This ensures that your BibTeX file will look more consistent.
See Save Actions for more information.
JabRef itself can be either installed using the installer or just running the portable version. You get these files from http://downloads.jabref.org/.
On Windows, the installer automatically downloads the OracleJDK (i.e. Java). You can also install it manually as described here.
http://downloads.jabref.org/ - redirects to the preferred place to download JabRef
Development snapshots: https://builds.jabref.org/master/
https://sourceforge.net/projects/jabref/files/ - contains historical releases only
JabRef 5.x is shipped with a lightweight Java runtime environment that includes only the Java dependencies JabRef uses. There are two major ways of obtaining JabRef for your platform.
For stable versions, head to https://downloads.jabref.org, choose the installer and run it. On Windows, you can use the chocolatey package manager and execute choco install jabref
to get the latest version. On Ubuntu, you can use snap install jabref
to get the latest stable version from snapcraft.
In case, you want to take advantage of the latest features, you can use pre-built binaries crafted from the latest development branch.
To use the prebuilt binaries, visit http://builds.jabref.org/master/ and download the packaged binaries (e.g., dmg
files for MacOS and exe
files for Windows), run them and follow the instructions. We also provide generic archive files (e.g., tar.gz
files for Linux and MacOS, and zip
files for Windows) which can be downloaded and extracted. Inside the archive files you will find a bin
subdirectory which contains the binary needed to run JabRef (i.e., JabRefMain
for Linux and MacOS, and JabRefMain.bat
for Windows).
This method is mainly for package maintainers and users who would like to build the latest snapshots of JabRef directly from the source. If you want to setup JabRef for development, follow the instructions for Setting up a workspace
To build JabRef from source, you first need to have a working Java Development Kit 13 (JDK 13) and Git installed on your system. After installing the two requirements, you open a terminal window (i.e., a command prompt) and type the following:
In a nutshell, you clone the latest snapshot of JabRef into jabref
directory, change directory to jabref
, initialize and update all the submodules (dependencies) of JabRef, assemble them to be built via JDK 13, and finally build and link them together.
The output should be the build/image
subdirectory that contains the JabRef binary with all of its Java dependencies. To start JabRef, you need to run bin/JabRefMain
(in Linux and MacOS) or bin/JabRefMain.bat
(in Windows) under build/image
subdirectory.
JabRef 4.x requires JRE 8 (and does not run at JRE 9 onwoards)
JavaFX is not included in every Java runtime environment or development kit. Therefore, we highly recommend to use Oracle Java 8. JavaFX is included since Java 1.8.0_60. The other official support for JavaFX is OpenJDK with the external library OpenJFX. Unfortunately, the installation is not always straight forward. Therefore, we only recommend this if you know what you are doing. In case you want to use OpenJDK with OpenJFX in general you should follow this instructions. For Ubuntu 16.04 LTS, 18.04 LTS and 20.04 LTS head to the section Installation Commands.
In case you already have a Java version installed - or you closely followed the steps below, you can check your Java version by typing the following command into your command line interface:
java -version
It is possible having multiple Java versions at the same time. On debian based Linux distributions set your preferred Java version using the following command:
sudo update-alternatives --config java
and choose it by typing the number matching the Java version.
Your Java version should look like this, depending on your operating system and JDK/JRE:
Oracle Java 32-Bit:
Oracle Java 64-Bit:
OpenJDK 32-Bit:
OpenJDK 64-Bit:
If this does not report to be a product from Oracle (for instance tells you that it is a GCJ VM) even if you have installed the Oracle JVM then you need to change your setup. In the following, the installation is documented for Ubuntu, Debian, Fedora, CentOS, Windows, and MacOSX.
This applies for both 32bit and 64bit and both Ubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS and 20.04 LTS.
Install Oracle JDK:
Download the Linux files (e.g. Linux_X64) from https://java.com/en/download/linux_manual.jsp
Unpack the archive
Note: You can already start JabRef now. Just enter into terminal: "/home/USER/Downloads/jre-8u251-linux-x64/jre1.8.0_251/bin/java -jar /home/USER/Downloads/JabRef-4.3.1.jar" (The path has to match your folder structure)
Register your JRE system-wide
Move the java folder to your preferred location (e.g. /usr/java). The folder structure should look like "/usr/java/jre1.80_251/bin"
Edit "bashrc" with: sudo gedit ~/.bashrc
Insert the following lines and save the file (adjust JAVA_HOME if neccessary):
export JAVA_HOME=/usr/java/jre1.80_251
export PATH=${PATH}:${JAVA_HOME}/bin
Log out and in to your system
Verify your java version (see above): java -version
Start JabRef with: java -jar Path/to/JabRef.jar
Have a look for further instructions.
Just install JavaFX by executing sudo apt-get install openjfx
.
For Ubuntu 18.04 and newer, openjfx
uses the Java version 11 which is currently not supported by JabRef. Hence, use an older version (does not work with Ubuntu 20.04 anymore):
If you accidently installed the new version, remove it with sudo apt purge openjfx
.
Install an older version with sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2
.
To prevent the software updater from installing the newer not supported version, mark it to be not updated with sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
.
This also works for Linux Mint 19.1 Tessa which is based on Ubuntu 18.04.
Using the ppa
Add repository: sudo sh -c 'echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" >> /etc/apt/sources.list'
Add GPG key: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
Update package list: sudo apt-get update
Install: sudo apt-get install oracle-java8-installer
Based on: http://tecadmin.net/install-java-8-on-debian/
Directly from Oracle
Download tag.gz-file from the Java SE Development Kit 8 Downloads site
Navigate to the folder where you downloaded the tar.gz-file
Create package with make-jpkg jdk-[Version]-linux-x64.tar.gz
including the most recent Java version instead of[Version]
Get root access with su
Install with dpkg -i oracle-java8-jdk_[Version].deb
Download rpm-file from the Java SE Development Kit 8 Downloads site
Navigate to the folder where you downloaded the rpm-file
Install: rpm -ivh jdk-8u101-linux-x64.rpm
Upgrade: rpm -Uvh jdk-8u101-linux-x64.rpm
Set alternatives: alternatives --config java
(choose Oracle version)
Recent JabRef builds are available at https://build.opensuse.org/package/show/home:cornell_vrdc/jabref3.
Install OpenJDK: sudo dnf install java-1.8.0-openjdk
Install JavaFX (actually OpenJFX): sudo dnf install openjfx java-1.8.0-openjdk-openjfx
Download the JabRef-[version].jar from the JabRef Website.
In the folder of the jar-file run java -jar JabRef-[version].jar
Warning: To install JavaFX, it is not sufficient to just install the openjfx
package. Warning: There is a bug in openjfx
in Fedora 29. JabRef versions newer than 4.3.1 will not work with OpenJDK and Fedora 29 until this is fixed. See also issue 4473.
Download rpm-file from the Java SE Development Kit 8 Downloads site
Install with sudo yum localinstall jre-[Version]-linux-[BIT].rpm
include the most recent Java version for [Version]
and i586
or x64
for [BIT]
depending on your OS version
The necessary Java packages can be installed via "1-click installs":
Two packages are available in the Arch User Repository (AUR):
jabref: The current release
jabref-latest: The latest version from the GitHub master branch
Both packages install precompiled jar files and add a command and a .desktop file to the OS.
The "modern" way:
Install chocolatey by following the steps described at https://chocolatey.org/install
Execute choco install jre8
At any time, you can update to the latest Java runtime environment by executing choco upgrade all
.
The "old" way:
Download exe file from the Java SE Development Kit 8 Downloads site
Run installation wizzard
Download dmg-file from the Java SE Development Kit 8 Downloads site
Run installation wizzard
See the FAQs.
Some users with macOS Sierra have reported freezes when using JabRef. Apparently, adding a host mapping for 127.0.0.1 seems to solve these issues.
Random freezes have also been reported on several Linux distributions. It seems that the GTKLookAndFeel
is causing these problems and selecting a different look and feel class under Options -> Appearance -> Look and Feel
solves the problem.
The connection from JabRef to Libre Office requires some office related jar
-archives to be present. The Windows installer for OpenOffice/LibreOffice automatically installs the required libraries. For Linux you have to install the package libreoffice-java-common
.
Stay on top of your literature: JabRef helps you to collect and organize sources, find the paper you need and discover the latest research.
JabRef is a cross-platform application that works on Windows, Linux and Mac OS X. It is available free of charge and is actively developed. JabRef supports you in every step of your research work.
Import options for over 15 reference formats
Easily retrieve and link full-text articles
Fetch complete bibliographic information based on ISBN, DOI, PubMed-ID and arXiv-ID
Extract metadata from PDFs
Import new references directly from the browser with one click using the official browser extension for Firefox, Chrome, Edge and Vivaldi
Group your research into hierarchical collections and organize research items based on keywords/tags, search terms or your manual assignments
Advanced search and filter features
Complete and fix bibliographic data by comparing with curated online catalogues such as Google Scholar, Springer or MathSciNet
Customizable citation key generator
Customize and add new metadata fields or reference types
Find and merge duplicates
Attach related documents: 20 different kinds of documents supported out of the box, completely customizable and extendable
Automatically rename and move associated documents according to customizable rules
Keep track of what you read: ranking, priority, printed, quality-assured
Cite-as-you-write functionality for external applications such as Emacs, Kile, LyX, Texmaker, TeXstudio, Vim and WinEdt.
Format references in one of the many thousand built-in citation styles or create your style
Support for Word and LibreOffice/OpenOffice for inserting and formatting citations
Many built-in export options or create your export format
Library is saved as a simple text file and thus it is easy to share with others via Dropbox and is version-control friendly
Work in a team: sync the contents of your library via a SQL database
JabRef is is a program for working with BibTeX and biblatex databases. JabRef program uses no separate internal file format, but directly works with BibTeX and Biblatex. That means, your Bib(La)TeX file is kept as is when opening in JabRef and saving again: You normally load and save your databases directly in the Bib(La)TeX .bib format. In addition, you can also import and export bibliography libraries in a number of other formats into JabRef.
Most menu actions referred in the following have keyboard shortcuts, and many are available from the toolbar. The keyboard shortcuts are found in the pull-down menus.
This is the main window from where you work with your databases. Below the menubar and the toolbar is a tabbed pane containing a panel for each of your currently open databases. When you select one of these panels, a table appears, listing all the database's entries, as well as a configurable selection of their fields.
You decide which fields are shown in the table by checking the fields you want to see in the Preferences dialog.
Double-click a line of the table to edit the entry content. You can navigate the table with the arrow keys.
The table is sorted according to a set of fields of your choosing. The default sort order can be set up in Preferences → Entry table, but to more quickly change the order, click the header of a column to set it as the primary sort criterion, or reverse the sorting if it is already set. Another click will deselect the column as sorting criterion. Hold down Ctrl and click a column to add, reverse or remove it as a sub-criterion after the primary column. You can add an arbitrary number of sub-criteria, but only three levels will be stored for the next time you start JabRef.
Adjust the width of each column by dragging the borders between their headers.
Color codes can be toggled in the Preferences dialog (select Appearance and activate option "Color codes for optional and required fields). They help you visualize the completeness of your database by coloring cells as follows:
A red cell in the leftmost column denotes an incomplete entry.
A yellow cell in the leftmost column denotes an entry that doesn't define all required fields by itself, but that contains a cross-reference.
A blue cell denotes a required field.
A green cell denotes an optional field.
An uncolored cell denotes a field which is not used by the BibTeX program for this type of entry. The field can still be edited in JabRef.
There are several ways to add a new entry. The New entry menu action shows a dialog where you can choose the type of the entry from a list. To bypass this dialog, there are also separate menu actions for each entry type, and keyboard shortcuts for the most common types.
When a new entry is added, by default an entry editor for the entry will be opened. This behaviour can be toggled in the Preferences dialog.
Note: We strongly recommend learning the shortcuts for the entry types you use most often, e.g. Ctrl + Shift + A for adding an article entry.
In the dialog, you can also create an entry based on Id. See import using publication identifiers for an overview on all available fetchers. For instance, when having an ISBN number, you can select "ISBN" or "DOI" as Id type and then fetch it. See ISBNtoBibTeX and DOItoBibTeX for details.
Use the BibTeX → New entry from plain text... (Ctrl+Shift+N). For more information see New entry from plain text.
To open an entry editor for an existing entry, simply double-click anywhere on the appropriate line will open the entry editor (or select the entry and press Enter).
In JabRef you write the contents of all fields the same way as you would in a text editor, with one exception: to reference a string, enclose the name of the string in a set of # characters, e.g.: '#jan# 1997', which will be interpreted as the string named jan
followed by 1997
. For more information, see string editor.
Please refer to https://github.com/JabRef/jabref/blob/master/CHANGELOG.md for a complete history in English.
The JabRef software is under the MIT License. In short, JabRef is free of use, even commercially. You can do whatever you want with it as long as you include the original copyright and license notice in any copy of the software/source.
The help of JabRef is under the Creative Commons 4.0 Attribution 4.0 International License. In short, you can make a commercial use of it, distribute it, modify it and rename it. You must give credit, include copyright, and state changes. And you cannot sublicense it.
Although JabRef is primarily a GUI based application, it offers several command line options that may be useful. JabRef can even perform file conversion operations without opening the graphical interface.
This description applies since JabRef 5.0, because JabRef comes with a pre-bundled Java-Runtime Environment
Locate JabRef.bat
(Windows) or JabRef
(Linux, Mac OS). In the partable versions, this is JabRef-5.0-portable_windows\JabRef\runtime\bin\JabRef.bat
and JabRef-5.0-portable_linux\JabRef\lib\runtime\bin\JabRef
.
Do not use JabRef\JabRef.exe
or bin/JabRef
The following documentation is for Windows, but works equally well on Linux and Mac OS:
In some cases, you have to specify --console
to ensure that output is written to the console.
You can always specify one or more BibTeX files to load by simply listing their filenames. Take care to specify all options before your list of file names. Ensure that the first file name is not misunderstood as being an argument for an option; this simply means that if a boolean option like -n
or -l
immediately precedes a file name, add the word true
as an argument. For instance, the command line will correctly load the file original.bib
, export it in docbook format to filetoexport.xml
, and suppress the GUI_
The word true prevents the file name from being interpreted as an argument to the -n
option.
-h
(or --help
)
Displays a summary of the command line options, including the list of available import and export formats.
-n
(or --nogui
)
Suppresses the JabRef window (i.e. no GUI - Graphic User Interface - is displayed).
It causes the program to exit immediately once the command line options have been processed. This option is useful for performing file conversion operations from the command line or a script.
-i filename[,import format]
(or --import filename[,import format]
or --importToOpen filename[,import format]
)
Import or load the file filename
.
If only the filename is specified (or if the filename is followed by a comma and a *
character), JabRef will attempt to detect the file format automatically. This works for BibTeX files, and also for all files in a supported import format. If the filename is followed by a comma and the name of an import format, the given import filter will be used.
Use the -h
option to get the list of available import formats.
If an export option is also specified, the import will always be processed first, and the imported or loaded file will be used by the export filter. If the GUI is not suppressed (using the -n
option), any imported or loaded file will show up in the main window.
If --importToOpen
is used, the content of the file will be imported into the opened tab.
Note: The -i
option can be specified only once, and for one file only.
-o filename[,export format]
(or --output filename[,export format]
Export or save a file imported or loaded by the same command line.
If a file is imported using the -i
option, that file will be exported. If no -i
option is used, the last file specified (and successfully loaded) will be exported.
If only filename is specified, it will be exported in BibTeX format. If the filename is followed by a comma and an export format, the given export filter will be used.
A custom export filter can be used, and will be preferred if the export name matches both a custom and a standard export filter.
If the GUI is not suppressed (using the -n
option), any export operation will be performed before the JabRef window is opened, and the imported database will show up in the window.
Note: The -o
option can be specified only once, and for one file only.
XMP is an ISO standard for the creation, processing and interchange of standardized and custom metadata for digital documents and data sets.
The first option is to export all entries, which are included in the entries.bib
file to the specified export.xmp
file. The second argument, separated by comma, is the type of exporter used by JabRef.
The second option is to export every entry in the entries.bib in a single .xmp file. Therefore, the file name is replaced by the keyword split
without a file ending! JabRef generates individual .xmp files at the path
location. The file name is a combination of the identifier provided by JabRef and the cite key of the entry.
-importBibtex
Import or load code directly from the BibTeX file. This only works for BibTeX files, and does not support files of other import formats. If it detects this command line option, the JabRef CLI will take in its following argument as a BibTeX string that represents the BibTeX article file being read in for import (usually a filename). JabRef then passes on this information to a helper function that will parse the BibTex string into entries and return the resulting BibTex entries to the JabRef CLI.
If the GUI is not suppressed (using the -n
option), any imported or loaded BibTeX file will show up in the main window.
Note: The -importBibtex
option can be specified only once, and for one file only.
-m [field]searchTerm,outputFile:file[,exportFormat]
(or --exportMatches [field]searchTerm,outputFile:file[,exportFormat]
)
Save to a new file all the database entries matching the given search term.
If the filename is followed by a comma and an export format, the given export filter will be used. Otherwise, the default format html-table (with Abstract and BibTeX, provided by tablerefsabsbib) is used.
Information about to the search function is given in 'advanced search' documentation.
Note: In addition it is also possible to search for entries within a time frame such as Year=1989-2005
(instead of only searching for entries of a certain year as in Year=2005
).
Note: Search terms containing blanks need to be bracketed by quotation marks, as in (author=bock or title|keywords="computer methods")and not(author=sager)
-f=FetcherName:QueryString
(or --fetch=FetcherName:QueryString
)
Query a Web fetcher and import the entries.
Pass both the name of a fetcher and your search term or paper id (e.g. --fetch=Medline:cancer
), and the given fetcher will be run. Some fetchers will still display a GUI window if they need feedback from you.
The fetchers listed in the Web search panel can be run from the command line. To get the list of available fetchers, run --fetch
without parameters.
-a infile[.aux],outfile[.bib] base-BibTeX-file
(or --aux infile[.aux],outfile[.bib] base-BibTeX-file
)
Extract a subdatabase from a .aux file:
When you compile a LaTeX document (e.g. infile.tex
), an .aux file is created (infile.aux
). Among other things, it contains the list of entries used in your document. JabRef can extract the references used from the base-BibTeX-file
to a new .bib file (outfile.bib
). This way, you will have a subdatabase containing only the entries used in the .tex file.
-asfl
(or --automaticallySetFileLinks
)
Automatically set file links.
-g
(or --generateBibtexKeys
)
Regenerate all keys for the entries of a BibTeX file.
-x filename
(or --prexp filename
)
Export user preferences to an XML file. After exporting, JabRef will start normally.
-p filename
(or --primp filename
)
Import user preferences from an XML file (exported using the -x
option, or through the GUI). After importing, JabRef will start normally.
-d key
(or --prdef key
)
Reset preferences (key1, key2,..., or all
).
-b
(or --blank
)
Do not open any files at startup
-v
(or --version
)
Display the version number of JabRef.
--debug
Show debug level messages.
--console
Show info and error messages in the console.
JabRef lets you link up your entries with files of any type stored on your system. Thereby, it uses the field file
, which contains a list of linked files. Each entry can have an arbitrary number of file links, and each linked file can be opened quickly from JabRef. The fields url
and doi
are used as links to documents on the web in the form of an URL or a DOI identifier respectively. See External Files for an explanation.
In BibTeX terms, the file links are stored as text in the field file
. From within JabRef, however, they appear as an editable list of links accessed from the entry editor along with other BibTeX fields.
If the "file" field is included in General fields, you can edit the list of external links for an entry in the Entry editor. The editor includes buttons for inserting, editing and removing links, as well as buttons for reordering the list of links.
JabRef offers following directory settings:
Options → Preferences → File → External file links → Main file directory
File → Library properties → General file directory.
File → Library properties → User-specific file directory
One of these settings is required. Mostly the "Main file directory" is enough.
JabRef enables setting a directory per database. When sharing a library across multiple persons, each user might have a different directory. Either each user can set his directory in the "Main file directory". In case the group also shares papers and thus there are two directories (the private one and a group-shared one), one can set a directory within the library (the "General file directory"). In case a user has a different location of the shared folder (e.g., different paths on Linux and Windows), he can use the "User-specific file directory". This settings is persisted in the bib
file in a way that it does not overwrite the setting of another user. For this, JabRef uses the username of the currently logged in user (-<loginname>
is used as suffix in the jabref-meta
field). So, both mary
and aileen
can set a different user-specific file directory.
If JabRef saves an attached file and my loginname matches the name stored in the bib
file, it chooses that directory. If no match is found, it uses the "General file directory" of the bib file. If that is not found, it uses the one configured at Options → Preferences → File → External file links ("Main file directory").
In some settings, the bib file is stored in the same directory as the PDF files. Then, one ignore all the above directories and enable "use the BIB file location as primary file directory". In this case, JabRef starts searching for PDF files in the directory of the bib
file. It is also possible to achieve this result by setting .
as "General file directory" in the library properties.
Relative file directories obviously only work in the library properties fo a bib file, e.g. a.bib
→ Library properties → General file directory → papers
. Assume to have two bib files: a.bib
and b.bib
located in different directories: a.bib
located at C:\a.bib
and b.bib
located at X:\b.bib
. When I click on the +
icon in the general Tab of file a.bib
, the popup is opened in the directory C:\papers
(assuming C:\papers
exists).
If you have a file within or below one of your file directories with an extension matching one of the defined external file types, and a name containing a BibTeX entry's BibTeX key, the file can be autolinked by clicking on the Auto button in the entry editor.
The rules for which file names can be autolinked to a BibTeX key can be set up in Preferences → File → External file links → Use regular expression search.
If you want to download a file and link to it from a BibTeX entry, you can do this by clicking the Download button in the entry editor.
A dialog box will appear, prompting you to enter the URL. The file will be downloaded to your main file directory, named based on the entry's BibTeX key, and finally linked from the entry.
JabRef uses all directories set at Directories for files to search for the files. JabRef starts in the user-specific file directory, then the general file directory and finally the main file directory to handle files.
It is possible to have greater flexibility in the naming scheme by using regular expression for the search. In most cases it should not be necessary though to adapt the given default.
If you open the external preferences (Options → Preferences → File) you will find an option called "Use regular expression search". Checking this option will allow you to enter your own regular expression for search in the PDF directories.
The following syntax is understood:
*
- Search in all immediate all subdirectories excluding the current and any deeper subdirectories.
**
- Search in all subdirectories recursively AND the current directory.
.
and ..
- The current directory and the parent directory.
[title]
- All expressions in square brackets are replace by the corresponding field in the current entry
[extension]
- Is replaced by the file-extension of the field you are using.
All other text is interpreted as a regular expression. But caution: You need to escape backslashes by putting two backslashes after each other to not confuse them with the path-separator.
The default for searches is **/.*[bibtexkey].*\\.[extension]
. As you can see this will search in all subdirectories of the extension-based directory (for instance in the PDF directory) for any file that has the correct extension and contains the BibTeX-key somewhere.
There are several ways to open an external file or web page. In the entry table, you can click on the PDF icon to open the PDF. In case there are multiple PDFs linked, always the first one is opened. You can also right click on the line of the entry in the entry table and select "Open file". There is also a keyboard shorcut for this: In the default setting, this is F4, but it can also be customized.
To access any of an entry's links, click on the icon with the right mouse button (or Ctrl + Click on Mac OS X) to bring up a menu showing all links.
In general, there is no need to change the settings of external file types. So, this setting is for advanced users.
For each file link, a file type must be chosen, to determine what icon should be used and what application should be called to open the file. The list of file types can be viewed and edited by choosing Options → Manage external file types, or by clicking the Manage external file types button in the External programs tab of the Preferences dialog.
A file type is specified by its name, a graphical icon, a file extension and an application to view the files. On Windows, the name of the application can be omitted in order to use Window's default viewer instead.
The autosave and backup features is available since JabRef 3.7.
To reduce the amount of configuration options, the possibility to disable the creation of .bak
files was removed in JabRef 5.1.
JabRef generates .sav
and .bak
files while working. .sav
is the automatic backup feature: Each 15 seconds, the current state of the library is saved. .bak
preserves the last state of the library after saving. Thus, one can go back one save command in the history.
By using the gitignore.io service, you can generate an appropriate .gitignore
file by opening https://www.gitignore.io/api/jabref.
In addition to .bak
and to .sav
, JabRef offers automatic saving of the library. No need to click on File --> Save or pressing Ctrl+S anymore: The opened database are saved automatically without manual intervention.
In case the .bib
file should automatically be saved on each change, you can direct JabRef to do so. This feature needs to be activated in the preferences:
This functionality runs in the background while you are working on a BibTeX database. It makes a backup copy (in a .bib.sav
file) and keeps that up-to-date on every user interaction. For instance, when you change a field the new value would get saved into the backup copy. Assuming that JabRef crashes while you are working on a BibTeX database. When you try again to open the file JabRef crashed with you will get the following dialog:
Now you have the possibility to restore your changes which would normally get lost.
When JabRef gets closed normally the .sav
file will be removed. Otherwise, this file is going to be used for database restoration next time.
The .bak
file preserves the last state of the library before saving. Thus, one can go back one save command in the history. For more advanced history, we recommend to use git as version control system.
JabRef can optionally set a field to contain the date an entry was added to the database.
You can disable or enable this feature by entering Options → Preferences → General, and selecting/deselecting the line 'Mark new entries with addition date'.
If an entry with a timestamp is pasted or imported, the field is updated with the current date if 'Overwrite' is checked. The value of the timestamp field will be updated upon changes in the entry if 'Update timestamp on modification' is checked.
By default, the date is added in a field called 'timestamp', which is visible in the General fields tab in the . You can alter the name of this field. The date format can also be customized (see below).
The timestamp field can be edited in the General fields tab of the . If you do not see these fields, enable them at or reset your preferences.
You can manually alter the value by typing in the date and time of your choice. Also, by clicking on the calendar icon located at the right end of the field, you can select the date you want in a calendar.
The formatting of the time stamp is determined by a string containing designator words that indicate the position of the various parts of the date.
These are some of the available designator letters (examples are given in parentheses for Wednesday 14th of September 2005 at 5.45 PM):
yy: year (05)
yyyy: year (2005)
MM: month (09)
dd: day in month (14)
HH: hour in day (17)
mm: minute in hour (45)
These designators can be combined along with punctuation and whitespace. A couple of examples:
yyyy.MM.dd gives 2005.09.14
yy.MM.dd gives 05.09.14
yyyy.MM.dd HH:mm gives 2005.09.14 17:45
For linking attached files, see .
JabRef lets you link documents on the web in the form of an URL or a DOI identifier.
JabRef has to know which external viewers to use for web pages. These are by default set to values that probably make sense for your operating system, so there's a fair chance you don't have to change these values.
To change the external viewer settings, go to Options → Preferences → External programs.
There are several ways to open an external web page. In the entry editor, click on the icon "open" right of the text field to open the respective DOI or URL.
In the entry table you can select an entry and use the menu choice, keyboard shortcut or the right-click menu to open the file or web page. Finally, you can click on a URL or DOI icon.
By default the entry table will contain a singly column containing an indicator whether there is a DOI or a URL linked. You can disable any of these in Options → Preferences → Entry table columns.
Since: 5.0
JabRef can automatically toggle journal names between abbreviated and unabbreviated form, as long as the names are contained in one of your journal lists.
This feature can be configured under Options → Manage journal abbreviations.
JabRef includes a fairly extensive build-in list of journal abbreviations. This list is a merge of all lists available at . However, this might still be be incomplete (or outdated) for the purposes of some users. Thus, JabRef allows to add abbreviations in the form of a personal list or external lists.
Journal name conversion can be accessed either from within the entry editor, or from the Tools menu. In the entry editor you will find a button labeled Toggle abbreviation by the journal field. Clicking this button will cause the current journal name to be switched to the next of four modes:
Full name, e.g. "Aquacultural Engineering"
Default abbreviation, e.g. "Aquacult. Eng."
Medline abbreviation, e.g. "Aquacult Eng"
Shortest unique abbreviation, e.g. "AQEND6"
If the current journal name is not found in your journal lists, the field will not be modified.
To convert the journal names of many entries in bulk, you can select any number of entries, and choose Tools → Abbreviate journal names (DEFAULT), Tools → Abbreviate journal names (MEDLINE), Tools → Abbreviate journal names → SHORTEST UNIQUE, or Tools → Unabbreviate journal names. These three actions will abbreviate and unabbreviate the journal names of all selected entries for which the journal name could be found in your journal lists.
In addition to the build-in journal list, you can have a personal list and external lists.
Any entry in your personal journal list will override an entry with the same full journal name in one of the external lists. Similarly, the external lists are given precedence in the order they are listed.
Your personal journal list is managed on top of the Manage journal abbreviations window. To start building your personal journal abbreviations list, choose Add new list, and enter a filename. If you already have a file that you want to use as a starting point, use the Open existing list button. The table will update to show the contents of the list you have selected.
The table and the tool buttons in the upper right allow you to add, remove and edit journal entries. For each entry you must provide the full journal name, and the default abbreviation (e.g. "Aquacultural Engineering" and "Aquacult. Eng."). The last field, which contains the shortest unique abbreviation, is optional. Therefore, you can actually safely omit it. To edit an entry, double-click its row in the table.
Once you click Save changes, if you have selected a file, and the table contains at least one entry, the table contents will be stored to the selected file, and JabRef's list of journals will be updated.
You can link to a number of external lists. These links can be set up on top of the Manage journal abbreviations window. External lists are similar to the personal list. The Open existing list button allows you to select an existing file on your computer.
The two last fields are optional, and you can omit them. JabRef supports the third field, which contains the shortest unique abbreviation. The last field is not currently used; its intention is gives frequency (e.g., M
for monthly). For instance:
JabRef helps you work with your BibTeX databases, but there are still rules to keep in mind when editing your entries, to ensure that your database is treated properly by the BibTeX program.
JabRef stores the encoding of the file and (in case a shared is used) the ID of the shared database in the header of the bib file.
% Encoding: <encoding>
: States the encoding of a BibTeX file. E.g., % Encoding: UTF-8
To enable , JabRef adds % DBID: <id>
to the header. This helps JabRef identifying the SQL database where the file belongs. E.g., % DBID: 2mvhh73ge3hc5fosdsvuoa808t
.
There is a lot of different fields in BibTeX, and some additional fields that you can set in JabRef.
The following fields are recognized by the default bibliography styles:
bibtexkey A unique string used to refer to the entry in LaTeX documents. Note that when referencing an entry from LaTeX, the key must match case-sensitively with the reference string. Some characters should not be used in bibtexkey as they are not compatible or not recommended:
{ } ( ) , \ " - # ~ ^ : '
address Usually the address of the publisher
or other type of institution. For major publishing houses, you may omit the information entirely or give simply the city. For small publishers, on the other hand, you can help the reader by giving the complete address.
annote An annotation. It is not used by the standard bibliography styles, but may be used by others that produce an annotated bibliography.
author This field should contain the complete author list for your entry. The names are separated by the word and, even if there are more than two authors. Each name can be written in two equivalent forms:
Donald E. Knuth or Knuth, Donald E.
Eddie van Halen or van Halen, Eddie
The second form should be used for authors with more than two names, to differentiate between middle names and last names.
booktitle Title of a book, part of which is being cited. For book entries, use the title
field instead.
chapter A chapter (or section or whatever) number.
crossref The database key of the entry being cross referenced.
edition The edition of a book--for example, ``Second''. This should be an ordinal, and should have the first letter capitalized, as shown here; the standard styles convert to lower case when necessary.
editor This field is analogue to the author field. If there is also an author
field, then the editor
field gives the editor of the book or collection in which the reference appears.
howpublished How something strange has been published. The first word should be capitalized.
institution The sponsoring institution of a technical report.
journal The name of a journal or magazine. The name of a journal can be abbreviated using a "string". To define such string, use the .
key Used for alphabetizing, cross referencing, and creating a label when the ``author'' information is missing. This field should not be confused with the key that appears in the \cite
command and at the beginning of the database entry.
month The month in which the work was published or, for an unpublished work, in which it was written. You should use the standard three-letter abbreviation of the English names (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec).
note Any additional information that can help the reader. The first word should be capitalized.
number
The number of a journal, magazine, technical report, or of a work in a series. An issue of a journal or magazine is usually identified by its volume and number; the organization that issues a technical report usually gives it a number; and sometimes books are given numbers in a named series.
organization The organization that sponsors a conference or that publishes a manual.
pages One or more page numbers or range of numbers, such as 42--111
or 7,41,73--97
or 43+
(which indicates page 43 and following pages
). The standard styles convert a single dash (as in 7-33
) to the double dash used in TeX to denote number ranges (as in 7--3
).
publisher The publisher's name.
school The name of the academic institution where a thesis was written.
series The name of a series or set of books. When citing an entire book, the title
field gives its title and an optional series
field gives the name of a series or multi-volume set in which the book is published.
title The title of the work. The capitalization may depend on the bibliography style and on the language used. For words that have to be capitalized (such as a proper noun), enclose the word (or its first letter) in braces.
type The type of a technical report - for example, "Research Note".
volume The volume of a journal or multivolume book.
year The year of publication or, for an unpublished work, the year it was written. Generally it should consist of four numerals, such as 1984
, although the standard styles can handle any year
whose last four nonpunctuation characters are numerals, such as "(about 1984)". This field is required for most entry types.
BibTeX is extremely popular, and many people have used it to store information in non-standard fields. The information in these non-standard fields may be ignored by BibTeX.
Here is a list of some of the more common non-standard fields ("*" = not directly supported by JabRef):
affiliation* The authors affiliation.
abstract An abstract of the work.
doi The Digital Object Identifier, a permanent identifier given to documents.
eid* The Electronic identifier is for electronic journals that also appear in print. This number replaces the page number, and is used to find the article within the printed volume. Sometimes also called citation number.
contents* A table of contents
copyright* Copyright information.
ISBN* The International Standard Book Number.
ISSN* The International Standard Serial Number. Used to identify a journal.
keywords Key words used for searching or possibly for annotation.
language* The language the document is in.
location* A location associated with the entry, such as the city in which a conference took place.
LCCN* The Library of Congress Control Number. I've also seen this as lib-congress
.
mrnumber* The number of Mathematical Reviews.
price* The price of the document.
size* The physical dimensions of a work.
URL The WWW Uniform Resource Locator that points to the item being referenced.
To help in managing your bibliography, and extend the features of BibTeX, JabRef defines some specific fields:
Generally, you can use LaTeX commands inside of fields containing text. BibTeX will automatically format your reference lists, and those fields that are included in the lists will be (de)capitalized according to your bibliography style. To ensure that certain characters remain capitalized, enclose them in braces, like in the word {B}elgium.
An institution name should be inside {}
brackets.
If the institution name also includes its abbreviation, this abbreviation should be also in {}
brackets.
For instance, {The Attributed Graph Grammar System ({AGG})}
.
This information is outdated. Please help to improve it.
Opened from main window by double-clicking anywhere on the line of the entry, or selecting the entry and pressing Enter or Ctrl + D. The panel is closed by pressing Esc._
In this panel you can specify all relevant information on a single entry. The entry editor checks the type of your entry, and lists all the fields that are required, and the ones that are optional, for referring the entry with BibTeX. In addition, there are several fields termed General fields, that are common to all entry types.
You can fully customize which fields should be regarded as required and optional for each type of entry, and which fields appear in the General fields tabs. See for more information about this.
For information about how the fields should be filled out, see .
The entry editor contains six panels: Required fields, Optional fields, General, Abstract, Comments and BibTeX source, where General, Abstract and Comments can be customized (see for details). Inside the three first panels, Tab and Shift + Tab are used to switch focus between the text fields.
Up to JabRef 4.1, the field was called "Review". The field name was changed to "Comments" as "Review" indicated some external reviews or some fundamental comments.
Switch panels by clicking on the tabs, or navigate to the panel to the left or right using the following key combinations: Ctrl + Tab or Ctrl + + switch to the tab to the right, and Ctrl + Shift + Tab or Ctrl + - switch to the tab to the left. You can also switch to the next or previous entry by pressing Ctrl + Shift + Down or Ctrl + Shift + Up, respectively, or by clicking the appropriate toolbar button.
The BibTeX source panel shows how the entry will appear when the database is saved in BibTeX format. If you wish, you can edit the BibTeX source directly in this panel. When you move to a different panel, press Ctrl + S or close the entry editor, JabRef will try to parse the contents of the source panel. If there are problems, you will be notified, and given the option to edit your entry further, or to revert to the former contents. If Show source by default is checked in the General options tab of the Preferences dialog, the source panel will be the one shown each time you open the entry editor. If you prefer editing the source rather than using the other four panels, you should check this option.
Tip: If your database contains fields unknown to JabRef, these will be visible in the source panel.
Tip: the pdf and url fields support Drag and Drop operations. You can drop there an url from your browser. either a link to a pdf file (that JabRef can download for you) or you can keep the link.
When the contents of a field is changed, JabRef checks if the new contents are acceptable. For field types that are used by BibTeX, the contents are checked with respect to the use of the '#' character. The hash symbol is only to be used in pairs (except in escaped form, '\#'), wrapping the name of a BibTeX string that is referenced. Note that JabRef does not check if the referenced string actually exists (this is not trivial, since the BibTeX style you use can define an arbitrary set of strings unknown to JabRef).
If the contents are not accepted, the field will turn red, indicating an error. In this case the change will not be stored.
The entry editor offers autocompletion of words. In the Preferences dialog you can enable or disable autocompletion, and choose for which fields autocompletion is active.
With autocompletion, JabRef records all words that appear in each of the chosen fields throughout your database. Whenever you write the beginning of one of these words, it will be suggested visually. To ignore the suggestion, simply write on. To accept the suggestion, either press Enter or use your arrow keys or other keys to remove the selection box around the suggested characters.
Note: the words considered for suggestion are only the ones appearing in the same field in entries of the same database as the one you are editing. There are many ways to realise this kind of feature, and if you feel it should have been implemented differently, we'd like to hear your suggestions!
The entry editor allows for file(s) to be dragged and dropped directly into the entry editor window. There are three different types of behaviors that govern how the files are handled, and the user can set which behavior they would like the entry editor to use in the Entry editor tab of the Preferences dialog. These behaviors are the following: copy, link, move.
If the copy option is selected as the drag and drop behavior, the entry editor will create a copy of the file in the current directory. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Copy: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
Link: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
If the link option is selected as the drag and drop behavior, the entry editor will create a link of the file. This creates a shortcut to the file and will not copy the file to the current directory. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
Copy: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Link: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
If the move option (shown as Copy, rename and link file) is selected as the drag and drop behavior, the entry editor will move the file to the current directory by copying the file to the current location, renaming the copy, and linking it to the original file. While this option is selected, the keyboard shortcuts needed to move, copy or link files are the following:
Move: Shift + Drag (Windows) or Command + Drag (MacOS/Linux) or no key + Drag
Copy: Ctrl + Drag (Windows) or Option + Drag (MacOS/Linux)
Link: Alt + Drag (Windows) or Command + Option + Drag (MacOS/Linux)
Pressing Ctrl + K or the 'key' button causes the BibTeX key for your entry including the surrounding to be copied to the clipboard.
Pressing Ctrl + Shift + K causes the BibTeX key for your entry to be copied to the clipboard.
Press Ctrl + G or the 'gen key' button (the magic wand) to autogenerate a BibTeX key for your entry based on the contents of its required fields.
By selecting this Tab, we are sending the title of the selected paper to Mr. DLib.
JabRef can optionally mark all new entries added or imported to a database with your username.
You can disable or enable this feature by entering Preferences → General, and selecting/deselecting the line 'mark new entries with owner name'. You can also change the name used to mark your entries. The default name used is your user name. Finally, if an entry with a field owner is pasted or imported, the field is updated with your owner name if 'Overwrite' is checked.
The owner name is added in a field called 'owner', which by default is visible in the General fields tab in the .
.
External lists can be found at . These data files are in CSV format (using semicolons as separators):
We want to expand both the build-in list and the selection of smaller lists, so if you have set up a representative list for your own subject area, we would appreciate it if you share your list via or by dropping a note on .
You can create new fields by .
- long manual explaining the workings of BibTeX, the BibTeX format, and the available entry types with required and optional fields.
(large file > 6000 publications)
BibTeX supports string constants. One can define in the bibliography. JabRef offers editing of these strings via the .
For instance, if you see #jan#
in the month
field, the "real" BibTeX entry looks like month = jan
. For more details, see .
For more information on how JabRef generates BibTeX keys, see .
Mr. DLib is a service that calculates recommendations for you based on this title. After a short loading time the recommendations are listed in the Related Articles Tab. For detailed information see . The following image shows the Related Articles Tab with recommendations to the selected item.
BibTeX supports storing constant strings using @String {key = value}
. JabRef supports managing them using BibTeX → Edit strings, which opens the String Editor. These values can be used in fields. For example, you can have:
and then in some entry for example
or
In the JabRef field editor, the author has to be inserted as #kopp# #et# #kubovy#
or #kopp# and #kubovy#
.
Strings are rendered specially in the entry editor. This is especially important in the case of months. For instance, take the following BibTeX entry:
In JabRef, the entry editor then displays #may#
. In case the entry editor just displays may
, this is written as follows:
In other words: The character #
indicates something special in the entry editor.
JabRef enhances the concept of Strings to add a type to those @String
s. The issue is how to preserve such type of a string in a BibTeX file. JabRef adds the type though prefixes:
@String { aKopp = "Kopp, Oliver" }
is a @String
with the type author.
@String { iMIT = "{Massachusetts Institute of Technology ({MIT})}" }
is a @String
with the type of institution.
@String { anct = "Anecdote" }
is a @String
of type other.
@String { lTOSCA = "Topology and Orchestration Specification for Cloud Applications" }
is a @String
of type other.
Then @String
s of type author should be used for author and editors fields only. @String
s of type institution should be used for institution and organization fields only. @String
s of type publisher should be used only for publisher fields. And finally @String
s of type other can be used anywhere.
It can also happen that you will have the same institution for more types:
@String { aMIT = "{Massachusetts Institute of Technology ({MIT})}" }
if the institution will appear as author or editor
@String { iMIT = "{Massachusetts Institute of Technology ({MIT})}" }
if the institution will appear as institution or organization
@String { pMIT = "{Massachusetts Institute of Technology ({MIT}) press}" }
if the institution will appear as publisher.
Even if the last example may appear contradicting the intention was to remove duplicity and unify the names of persons and institutions.
See https://tex.stackexchange.com/questions/303467/bibliography-contents-journal-names-not-abbreviated-even-with-ieeeabrv/303489#303489 for a MWE for string constants.
This information is outdated. Please help to improve it.
Special fields offer the functionality
rate read papers
mark papers as relevant for the work
mark BibTeX entries as quality assured, and
prioritize unread papers.
The main difference from the marked entry is that the rated entry is not floating by default and only highlight the number column. Thus, an entry may be both marked and rated.
Each special field may be turned on and off in the settings.
The aim is to add a functionality to set a range of “positive” ratings. JabRef offers a rank from one to five stars to rate papers.
An entry may be marked as relevant.
An entry may be marked as quality assured. The intention is to mark BibTeX entries, where a thorough checking of the field contents has been done.
One may prioritize entries from prio3 (low) to prio1 (high). The main intention is to prioritize unread papers.
Internally, each special field is stored in a separate BibTeX field. If “Write values of special fields as separate fields to BibTeX” is active, these fields are also written when the database is saved. JabRef also offers synchronizing the fields with keywords. This is enabled by the setting “Synchronize with keywords”. If this setting is active, then each change in a special field is reflected in the keyword field. Vice versa, each change in a keyword also leads to a change in the special field. Additionally, when loading a the database or pasting a new entry, the keywords are used to set the special field values.
This information is outdated. Please help to improve it.
This feature allows you to store a selection of often-used words or phrases that you use often in your database. By default it is enabled for the fields Journal, Author, Keywords and Publisher, but you can also add selectors to other fields, in the upper part of the Manage dialog (menu Options -→ Manage content selectors).
The word selection is database-specific, and is saved along with your references in the .bib file.
To add a new word in the entry editor, you can simply click into the text box for the field for which you configured the selectors. A drop down menu will appear and you can select the keyword of your choice. This mechanism is based on the autocompletion functionality in JabRef. Therefore, you need to have autocompletion enabled in your preferences.
DBLP is a computer science bibliography website listing more than 3.1 million journal articles, conference papers, and other publications on computer science (Wikipedia).
To fetch entries from DBLP, choose Search → Web search, and the search interface will appear in the side pane. Select DBLP in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
Import and export of bibliographic information using online bibliographic databases
DOAJ (Directory of Open Access Journals) is a database covering more than 10000 open access journals covering all areas of science, technology, medicine, social science and humanities (Wikipedia).
To fetch entries from DOAJ, choose Search → Web search, and the search interface will appear in the side pane. Select DOAJ in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
It is possible to limit the search by adding a field name to the search, as field:text. The supported fields area:
title: The title of the article
doi: The DOI of the article
issn: The ISSN of the journal
publisher: The publisher of the journal
abstract: The abstract of the article
How to find, sort, and clean entries
The ACM Portal includes two databases (Wikipedia):
the ACM Digital Library is a text collection of every article published by the Association for Computing Machinery, including over 60 years of archives
from articles, magazines and conference proceedings.
the Guide to Computing Literature that is a bibliographic collection from major publishers in computing with over one million entries.
To fetch entries from ACM, choose Search → Web search, and the search interface will appear in the side pane. Select ACM portal in the dropdown menu. You may choose which database to search and you may opt to download the abstracts along with the cite information for each entry, by checking the Include abstracts checkbox. To start a search, enter the words of your query, and press Enter or the Fetch button.
Frequent connections to ACM Portal may get your IP banned for hours. To avoid this, JabRef will display a preview (for each search) of the first page of entries returned by the server. You can then choose which entries to download.
Then, the results are displayed in the import inspection window.
This feature is available through Edit → Set/clear/rename fields.
Since: 3.7
The search bar is located between the icon bar and the database tabs.
To make the cursor jump to the search field, you can:
click in the search field.
select the menu Search → Search.
press Ctrl + F.
Additionally, Ctrl + Shift + F also activates the global search setting.
Searching includes two modes (normal and advanced), along with several settings.
At the right of the search text field, several buttons allow for selecting some settings:
New window
When pressed, the results are displayed in a dedicated window.
Global search
activated:
the search query will be taken over when switching tabs
the external search result window will show matches in all databases
deactivated:
each tab will remember its search query
the external search result window will only show matches in the current database
Regular expressions
Whether or not the search query uses regular expressions.
Case sensitivity
Whether or not the search query is case sensitive.
Display setting
Filter - Displays only entries which match the search query, non-matches are hidden
Float - Matching entries are moved to the top, entries which do not match the search query are grayed-out
There are two search modes in JabRef.
In a normal search, the program searches your database for all occurrences of the words in your search string, once you entered it. Only entries containing all words will be considered matches. To search for sequences of words, enclose the sequences in double quotes. For instance, the query progress "marine aquaculture" will match entries containing both the word "progress" and the phrase "marine aquaculture". All entries that don't match are hidden, leaving for display the matching entries only (filter mode), or are grayed-out (float mode). To stop displaying the search results, just clear the search field again, press Esc or click on the "Clear" (X
) button.
In order to search specific fields only and/or include logical operators in the search expression, a special syntax is available in which these can be specified. E.g. to search for entries whose an author contains miller, enter:
author = miller
Both the field specification and the search term support regular expressions. If the search term contains spaces, enclose it in quotes. Do not use spaces in the field specification! E.g. to search for entries about image processing, type:
title|keywords = "image processing"
You can use and
, or
, not
, and parentheses as intuitively expected:
(author = miller or title|keywords = "image processing") and not author = brown
The =
sign is actually a shorthand for contains
. Searching for an exact match is possible using matches
or ==
. Using !=
tests if the search term is not contained in the field (equivalent to not ... contains ...
). The selection of field types to search (required, optional, all) is always overruled by the field specification in the search expression. If a field is not given, all fields are searched. For example, video and year == 1932
will search for entries with any field containing video
and the field year
being exactly 1932
.
JabRef defines the following pseudo fields:
Regular expressions (regex for short) define a language for specifying the text to be matched, for example when searching. JabRef uses regular expressions as defined in Java. For extensive information, please, look at the documentation and at the tutorial.
They can be used in the normal search mode and the advanced search mode
By default, regular expressions do not account for upper/lower casing. Hence, while the examples below are all in lower case, they match also upper- and mixed case strings.
If casing is important to your search, activate the case-sensitive button.
.
means any character
+
means one or more times
author != .+
\b
means word boundary
\B
means not a word boundary
keywords = \buv\b
matches uv but not lluvia (it does match uv-b however)
author = \bblack\b
matches black but neither blackwell nor blacker
author == black
does not match john black, but author = \bblack\b
does.
author = \bblack\B
matches blackwell and blacker, but not black.
?
means none or one copy of the preceeding character.
{n,m}
means at least n, but not more than m copies of the preceding character.
[ ]
defines a character class
title =neighbou?r
matches neighbour and neighbor, and also neighbours and neighbors, and neighbouring and neighboring, etc.
title = neighbou?rs?\b
matches neighbour and neighbor, and also neighbours and neighbors, but neither neighbouring nor neighboring.
author = s[aá]nchez
matches sanchez and sánchez.
abstract = model{1,2}ing
matches modeling and modelling.
abstract = modell?ing
also matches modeling and modelling.
()[]{}\^-=$!|?*+.
)If a special character (i.e. (
)
[
]
{
}
\
^
-
=
$
!
|
?
*
+
.
) is included in your search string, it has to be escaped with a backslash, such as \}
for }
.
It means that to search for a string including a backslash, two consecutive backslashes (\\
) have to be used: abstract = xori{\\c{c}}o
matches xoriço.
"
)The character "
has a special meaning: it is used to group words into phrases for exact matches. So, if you search for a string that includes a double quotation, the double quotation character has to be replaced with the hexadecimal character 22 in ASCII table \x22
.
Hence, to search for {"o}quist as an author, you must input author = \{\\\x22o\}quist
, with regular expressions enabled (Note: the {, __ and the } are escaped with a backslash; see above).
Indeed, \"
does not work as an escape for "
. Hence, neither author = {\"o}quist
with regular expression disabled, nor author = \{\\\"O\}quist
with regular expression enabled, will find anything even if the name {"o}quist exists in the database.
is a freely accessible database that indexes the full text or metadata of scholarly literature across an array of publishing formats and disciplines. Google Scholar index includes most peer-reviewed online academic journals and books, conference papers, theses and dissertations, preprints, abstracts, technical reports, and other scholarly literature, including court opinions and patents ().
To fetch entries from Google Scholar, choose Search → Web search, and the search interface will appear in the side pane. Select Google Scholar in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
Google scholar can block "automated" crawls which generate too much traffic in a short time. Normally, the results are displayed in the . In case an error occurs, it is shown in a popup.
However, after too much crawls JabRef --- or more precisely: your IP address --- could be blocked. To unblock your IP, doing a Google scholar search in your browser might help. You will be asked to show that you are not a robot (a CAPTCHA challenge). If no CAPTCHA appears, or JabRef is still blocked after performing a search in the browser, you can also change your IP address manually or wait for some hours to get unblocked again.
Thus, the Google Scholar fetcher is not the best way to obtain lots of entries at the same time. If you are using Mozilla Firefox, the JabRef Plugin "JabFox" might be an alternative to download the BibTeX data directly from the browser. You can find the PlugIn here: .
Pseudo field
Purpose
Example
anyfield
Search in any field
anyfield contains fruit
: search for entries having one of its fields containing the word fruit. This is identical to just writing apple
. It may be more useful as anyfield matches apple
, where one field must be exactly apple
for a match.
anykeyword
Search among the keywords
anykeyword matches apple
: search for entries which has the word apple among its keywords. However, as this also matches pineapple
, it may be more useful in searches of the type anykeyword matches apple
, which will not match apples
or pineapple
bibtexkey
Search for citation keys
bibtexkey == miller2005
: search for an entry whose BibTeX key is miller2005
entrytype
Search for entries of a certain type
entrytype = thesis
: search entries whose type (as displayed in the entrytype
column) contains the word thesis (which would be phdthesis and mastersthesis)
INSPIRE-HEP is an open access digital library for the field of high energy physics (Wikipedia).
To fetch entries from INSPIRE-HEP, choose Search → Web search, and the search interface will appear in the side pane. Select INSPIRE in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
The INSPIRE-HEP search function merely passes your search queries onto the INSPIRE-HEP web search, so you should build your queries in the same way, except omitting the find or fin command. This help page will only give a brief introduction to the search queries. More extensive help on searching INSPIRE-HEP can be found on the page http://inspirehep.net/info/hep/search-tips .
Your query can be composed of several parts, combined using and and or as logical operators. Each part is composed of a letter or word indicating the type of field to search, followed by a space and the text to search for.
The following list shows some of the field indicators that can be used:
a or author: search author names
t or title: search in title
j: journal. Here either the common abbreviation or the 5 letter CODEN abbreviation for a journal can be used. Volume and page can also be included, separated by commas. For instance, j Phys. Rev.,D54,1 looks in the journal Phys. Rev., volume D54, page 1.
k: search in keywords
Example queries:
a smith and a jones: search for references with authors "smith" and "jones"
a smith or a jones: search for references with either author "smith" or author "jones"
a smith and not t processor: search for author "smith" and omit references with "processor" in the title
ArXiv is a repository of scientific preprints in the fields of mathematics, physics, astronomy, computer science, quantitative biology, statistics, and quantitative finance (Wikipedia).
To fetch entries from arXiv, choose Search → Web search, and the search interface will appear in the side pane. Select ArXiv.org in the dropdown menu. Enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
IEEEXplore is a scholarly research database that indexes, abstracts, and provides full-text for articles and papers on computer science, electrical engineering and electronics. IEEEXplore comprises over 180 journals, over 1,400 conference proceedings, more than 3,800 technical standards, over 1,800 eBooks and over 400 educational courses (Wikipedia)
To fetch entries from IEEEXplore, choose Search → Web search, and the search interface will appear in the side pane. Select IEEEXplore in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
By checking the Include abstracts checkbox, you may opt to download the abstracts along with the cite information for each entry. This will NOT cause more network queries.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
The search is done in guest mode, which means that a maximum of 100 results will be returned.
The option to download BibTeX citations directly from IEEEXplore is not working yet.
Please email Oscar Gustafsson ogib73@gmail.com or Aaron Chen nextAaron@gmail.com for any suggestions.
Since: 3.7
is an online database of over eight million astronomy and physics papers from both peer reviewed and non-peer reviewed sources. Abstracts are available free online for almost all articles, and full scanned articles are available in Graphics Interchange Format (GIF) and Portable Document Format (PDF) for older articles ().
To fetch entries from SAO/NASA Astrophysics Data System, choose Search → Web search, and the search interface will appear in the side pane. Select SAO/NASA Astrophysics Data System in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
Then, the results are displayed in the . In case an error occurs, it is shown in a popup.
Apart from fetching entries by using a full search, it is also possible to directly create a BibTeX entry using the BibTeX → New Entry dialog. More details are described at .
Since: 3.7
zbMATH is a reviewing service providing reviews and abstracts for articles in pure and applied mathematics (Wikipedia).
To fetch entries from zbMATH, choose Search → Web search, and the search interface will appear in the side pane. Select zbMATH in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
Then, the results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
GVK, the GBV Union Catalogue, is a multimaterial bibliographic database of seven German federal states. It covers 41.5 million records of books, conference proceedings, periodicals, dissertations, microfilms and electronic resources.
To fetch entries from GVK, choose Search → Web search, and the search interface will appear in the side pane. Select GVK (Gemeinsamer Verbundkatalog) in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
You can simply enter words / names / years you want to search for, or you can specify search keys. Supported keys are:
all - all words. Not specifYing a search key results in an "all" search
tit - title words
per - authors, editors, etc.
thm - topics
slw - key words
txt - tables of content
num - numbers, e.g. ISBN
kon - names of conferences
ppn - Pica Production Numbers of the GVK
bkl - Basisklassifikation-numbers
erj - year of publication
queries can be combined with "and". The use of "and" is optional, though.
in many cases you can use the truncation sign "?"
spaces in person names are not supported yet. Please use the truncation sign ? after the first name for several given names. E.g. "per Maas,jan?"
"marx kapital"
"per grodke and tit db2"
"per Maas,jan?"
Since: 3.7
DiVA (Digitala Vetenskapliga Arkivet) is a database with publications from about 40 Swedish universities and research institutions.
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "DiVA" can be selected (see screenshot below). Select the field "ID" and enter the DiVA here (e.g., diva2:260746
) and press Enter to generate an entry based on the Id. You can also click on "Generate". The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
Unpaywall is an open database with over 20 million free scholarly articles harvested from over 50,000 journals and open-access repositories around the globe. Sources for these articles include repositories run by renowned universities, governments, and scholarly societies. Unpaywall is integrated into thousands of existing search engines, library platforms, and information products, making articles easy to find, track, and use for your scholarly communication needs.
The Unpaywall database has a very simple structure: it has one record for each article with a Crossref DOI. It harvests from many sources to find Open Access content, and then matches this content to these DOIs using content fingerprints. So for any given DOI, we know about any OA versions that exist anywhere.
To fetch entries from Unpaywall indirectly through Crossref, choose Search → Web search, and the search interface will appear in the side pane. Select Crossref in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
MEDLINE is a bibliographic database of life sciences and biomedical information. It includes bibliographic information for articles from academic journals covering medicine, nursing, pharmacy, dentistry, veterinary medicine, and health care. MEDLINE also covers much of the literature in biology and biochemistry, as well as fields such as molecular evolution (Wikipedia).
To fetch entries from MEDLINE, choose Search → Web search, and the search interface will appear in the side pane. Select MEDLINE in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
There are two ways of specifying which entries to download:
Enter one or more MEDLINE IDs (separated by comma/semicolon) in the text field.
Enter a set of names and/or words to search for. You can use the operators and and or and parentheses to refine your search expression. See OVID operators for full description.
Examples:
May \[au\] AND Anderson \[au\]
Anderson RM \[au\] HIV \[ti\]
Valleron \[au\] 1988:2000\[dp\] HIV \[ti\]
Valleron \[au\] AND 1987:2000\[dp\] AND (AIDS \[ti\] OR HIV\[ti\])
Anderson \[au\] AND Nature \[ta\]
Population \[ta\]
In both cases, press Enter or the Fetch button. If you use a text search, you will be prompted with the number of entries found, and given a choice of how many to download.
Then, the results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.
If you need to use an HTTP proxy server, you can configure JabRef to use a proxy using the "Network" preferences (Options → Preferences → Network).
JabRef is not intended to be a tool for mass download of citations. The purpose of the WebFetchers (such as the Medline Fetcher) is to simplify download of single, or at least few entries without using the browser. That means, one tries to import the bibliographic information of already known publications in a simple way.
However, it is still possible to import hundreds or even thousands of entries from medline using the export functionality of the database itself. Perfom the search query you like, and then choose the "Send to" → "File" export (choose Medline or XML as format):
The downloaded file can then be imported using JabRefs "File" → "Import into current/new database" feature. Note: depending on the number the import might require some - or quite a lot of time. It was tried in 2016 with an exported XML file of 130MB an over 11000 found entries, which required more than 10 minutes of import.
Apart from fetching entries by using a full search it is also possible to directly create a BibTeX entry using the BibTeX → New Entry dialog. More details are described at Medline-to-BibTeX.
Since: 3.7
is a searchable online bibliographic database. It contains all of the contents of the journal Mathematical Reviews (MR) since 1940 along with an extensive author database, links to other MR entries, citations, full journal entries, and links to original articles. It contains almost 3 million items and over 1.7 million links to original articles ().
To fetch entries from MathSciNet, choose Search → Web search, and the search interface will appear in the side pane. Select MathSciNet in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
Then, the results are displayed in the . In case an error occurs, it is shown in a popup.
Since: 3.7
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "DOI" should be already selected. The field "ID" is focused. Enter the DOI here and press Enter to generate an entry based on the Id. You can also click on "Generate". Then, http://dx.doi.org/ (provided by http://crossref.org/) is used to convert the given DOI to a BibTeX entry. The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
(aka Springer Science+Business Media) is a global publishing company that publishes books, e-books and peer-reviewed journals in science, technical and medical publishing. Springer also hosts a number of scientific databases, including SpringerLink, Springer Protocols, and SpringerImages ().
To fetch entries from Springer, choose Search → Web search, and the search interface will appear in the side pane. Select Springer in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the . In case an error occurs, it is shown in a popup.
is a public search engine for scientific and academic papers primarily with a focus on computer and information science. However, CiteSeerX has been expanding into other scholarly domains such as economics, physics and others ().
To fetch entries from CiteSeerX, choose Search → Web search, and the search interface will appear in the side pane. Select CiteSeerX in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.
The results are displayed in the . In case an error occurs, it is shown in a popup.
Since: 3.7
is a bibliographic database of life sciences and biomedical information. It includes bibliographic information for articles from academic journals covering medicine, nursing, pharmacy, dentistry, veterinary medicine, and health care. Medline also covers much of the literature in biology and biochemistry, as well as fields such as molecular evolution ().
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "Medline" can be selected (see screenshot below). Select the field "ID" and enter the Medline ID here (e.g., 27934767
) and press Enter to generate an entry based on the Id. You can also click on "Generate". The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
Since: 3.7
is an online database of over eight million astronomy and physics papers from both peer reviewed and non-peer reviewed sources. Abstracts are available free online for almost all articles, and full scanned articles are available in Graphics Interchange Format (GIF) and Portable Document Format (PDF) for older articles ().
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "SAO/NASA Astrophysics Data System" can be selected (see screenshot below). Select the field "ID" and enter the SAO/NASA Astrophysics Data System ID here (e.g., 2013Sci...339..671W
) and press Enter to generate an entry based on the Id. You can also click on "Generate". The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
Since: 4.1
The maintains an eprint archive to which anyone can submit papers and technical reports. These eprints are given IDs based on the year of submission, e.g. the 10th submission in 2018 gets the ID "2018/10".
To create a new entry form an IACR eprint ID, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "IACR" should be already selected. The field "ID" is focused. Enter the eprints' ID here and press Enter to generate an entry based on the Id. You can also click on "Generate". The new entry is opened in an entry editor. In case an error occurs, a popup is shown.
To get the ID, you may want to use their web search form at .
Since: 3.8.1
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", you can select "Title". The field "ID" is focused. Enter the title here and press Enter to generate an entry based on the title. You can also click on "Generate". Then, http://dx.doi.org/ (provided by http://crossref.org/) is used to determine the DOI and convert the determined DOI to a BibTeX entry. The found entry is opened in an entry editor. In case an error occurs, a popup is shown. In case no DOI could be determined, no entry is created.
This feature is available through Quality → Synchronize file links....
Field formatting can be tidied up when saving the database. That ensures your entries to have consistent formatting. If you check Enable save actions in the Database Properties, the list of actions can be configured.
Each action is defined by:
an entry field (upon which the action will be applied).
the type of action to be carried out (such as HTML to LaTeX, which converts HTML code to LaTeX code, as described in the window).
Dependent on the database mode, "Recommended for BibTeX" or "Recommended for BibLaTeX". When pressing this button, the recommended cleanups for the respective mode is called.
Add braces encapsulating the complete field content. For instance
gets
However, this procedure is not recommended. It is better to use the "Protect Terms" functionality. See also https://tex.stackexchange.com/q/10772/9075.
Clears the field completely.
Escape underscores
Converts HTML code to LaTeX code.
Converts HTML code to Unicode.
Cleans up LaTeX code.
Normalizes the date to ISO date format. Format date string to yyyy-mm-dd or yyyy-mm. Keeps the existing String if it does not match one of the following formats:
"M/y" (covers 9/15, 9/2015, and 09/2015)
"MMMM (dd), yyyy" (covers September 1, 2015 and September, 2015)
"yyyy-MM-dd" (covers 2009-1-15)
"d.M.uuuu" (covers 15.1.2015)
Normalizes the en dashes.
Replace “-
” with “--
”.
Normalize month to BibTeX standard abbreviation.
Normalizes lists of persons to the BibTeX standard. This separates authors by "and"s with first names after last name separated by a commma; first names are not abbreviated.
"John Smith" ⇒ "Smith, John"
"John Smith and Black Brown, Peter" ⇒ "Smith, John and Black Brown, Peter"
"John von Neumann and John Smith and Black Brown, Peter" ⇒ "von Neumann, John and Smith, John and Black Brown, Peter".
Normalize pages to BibTeX standard. Format page numbers, separated either by commas or double-hyphens. Converts the range number format to page_number--page_number. Removes unwanted literals except letters, numbers and -+ signs. Keeps the existing String if the resulting field does not match the expected Regex.
Converts ordinals to LaTeX superscripts, e.g. 1st, 2nd or 3rd. Will replace ordinal numbers even if they are semantically wrong, e.g. 21rd
1st Conf. Cloud Computing -> 1\textsuperscript{st} Conf. Cloud Computing
Removes braces encapsulating the complete field content.
Removes all hyphenated line breaks in the field content.
Removes all line breaks in the field content.
Shortens DOI to more human readable form using http://shortdoi.org .
Converts Unicode characters to LaTeX encoding.
Converts units to LaTeX formatting. This includes:
Add braces around the unit to keep case.
Replace hyphen with non-break hyphen
Replace space with a hard space
Changes the first letter of all words to capital case and the remaining letters to lower case.
Changes all letters to lower case.
Adds {}
brackets around acronyms, month names and countries to preserve their case.
Capitalize the first word, changes other words to lower case.
Capitalize all words, but converts articles, prepositions, and conjunctions to lower case.
Changes all letters to upper case.
Shortens lists of persons if there are more than 2 persons to "et al.".
Since: 3.5
JabRef supports following fields to jump to other entries.
Following fields are supported:
cites
- comma separated list of BibTeX keys which are cited by this entry
crossref
- single entry which is cross referenced.
related
- comma separated list of BibTeX keys which are in some kind related to this entry. The type of all relations can be specified by a single relatedtype
(see ). Note: Biblatex prints this information if related
is active at the biblatex package.
To use the crossref
field, navigate to the general tab and insert the Crossref at the top.
To use cites
and related
, follow these steps:
Navigate to BibTeX source
Insert related = {bibtexkey},
Close the entry editor
Open the entry editor
Navigate to "Other fields"
There, you now see "related" with the possibilities to (i) navigate to the entry, (ii) add new related entries, (iii) remove related entries.
If you use crossref
, JabRef will move these entries first in the bibliography as otherwise bibtex cannot use the information of the cross-referenced fields. See also .
Please note that BibLaTeX treats crossref differently than BibTeX.
citedBy
- this is the opposite of cites
. Use cites
instead.
relations
- this would introduce a complicated field similar to our save actions. A simple key/value is enough
references
- stores all references in plain text (PRVV plugin). Thus, we do not use it.
See for the developer's discussion on the fields.
Import and export of bibliographic information using identifiers (such as a DOI)
JabRef can check the integrity of a database.
This feature is available through Quality → Check integrity....
Since: 4.3
IETF (Internet Engineering Task Force) Datatracker is a database that "contains data about the documents, working groups, meetings, agendas, minutes, presentations, and more, of the IETF."
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", "RFC" can be selected (see screenshot below). Select the field "ID" and enter the RFC here, with or without the "rfc" prefix (e.g. 1954
, rfc1954
) and press Enter to generate an entry based on the Id. You can also click on "Generate". The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
Since: 3.8
To use this feature, choose BibTeX → New entry.... In the lower part, there is the box "ID-based entry generator". In the field "ID type", you can select "ISBN". The field "ID" is focused. Enter the ISBN here and press Enter to generate an entry based on the Id. You can also click on "Generate". Then, eBook.de's API is used to convert an ISBN to a BibTeX entry. If no entry is found, the fetcher tries OttoBib to find an entry. The found entry is opened in an entry editor. In case an error occurs, a popup is shown.
Some fetched entries contain a url
field. This field points to the URL of the book at the respective online book store. In case you buy the book using the link, the service provider (ebook.de) receive a commission to fund the service.
JabRef can help you complement your entries from their DOI.
Open the entry editor, and in the General tab, click on the button Get BibTeX data from DOI. Obviously, this feature is available only if your entry already has a DOI.
The Merge entry with DOI information window will pop-up.
The fields of the original entry and of the information gathered from the DOI are displayed side-by-side on the upper part of the window.
The differences between the two sides can be emphasized through the drop-down menu located at the upper right-hand corner of the window. Five ways of displaying the differences are offered:
plain text: as is, no emphasis
show diff - word: differences are shown on the right side.
Full words are struck out in red if they are removed from the original entry or underlined in blue if they are added to the information collected from the DOI.
show diff - character: differences are shown on the right side.
Individual characters are struck out in red or underlined in blue as above.
show symmetric diff - word: differences are shown on both sides.
Words are underlined and displayed in color.
show symmetric diff - character: differences are shown on both sides.
Characters are underlined and displayed in color.
In the central column, a radio button allows you to select which side to keep for each field: the left side, the right side, or none. By default, the original entry (left) is kept, and any fields not present in the original entry are obtained from the information collected from the DOI.
Based upon your selection, the merged entry is shown, both as a preview (on the left) and as source code (on the right).
If you right-click on the preview, you can Print entry preview or Copy preview.
Finally, after selecting which fields to keep, you can decide to Replace the original entry. Alternatively, you can press Cancel.
See also: Find duplicates, Merge entries
This feature is available through Quality → Find unlinked files....
The following description appeared first on .
JabRef offers a BibTeX key generation and offers different patterns described at .
Create or open a .bib file.
Go to "Quality" -> "Find unlinked files".
The "Find unlinked files" dialog opens.
Choose a directory using the "Browse" button.
Click on "Scan directory".
In "Select files", the files not yet contained in the database are shown.
To create entries for all files, click on "Apply".
For each file, an import dialog is shown The dialog shows the XMP metadata stored in the PDF in the area "XMP-metadata". If this data fits your needs, select "Create entry based on XMP data". Typically, the XMP-metadata is not good enough. Choose "Create entry based on content".
Click on "OK" to start the import
A dialog asking for the link is opened You can choose "Leave file in its current directory" to keep the file where it is. Typically, this is that what one wants. In case you choose "Move file to file directory", you can also choose to rename the file to the generated BibTeX key.
Press OK to link the file to the BibTeX entry
This happens for each file. After that, the "Find unlinked files" dialog is shown. Just click on "Close" to close it.
The entry editor with the last imported entry is shown
You can now save the file and are finished.
Optional: Click on "General" to see the linked file
Optional: Click on "BibTeX source" to see the BibTeX source
Optional: You have to shrink it to see the entry in the entry table Enlarge the JabRef window and use the mouse at the upper border of the entry editor
Optional: Press Esc to show the entry preview
This makes the filenames start with the bibtey key followed by the full title. In the concrete case, \bibtexkey
only may be the better option as the described bibtey key already contains the title.
JabRef can help you merging entries of your database.
First, select the two entries to be merged. Then select the menu Quality → Merge entries.... The Merge entries window will pop-up.
The fields of the two entries are displayed side-by-side on the upper part of the window.
The differences between the two entries can be emphasized through the drop-down menu located at the upper right-hand corner of the window. Five ways of displaying the differences are offered:
plain text: as is, no emphasis
show diff - word: differences are shown in the right entry. Full words are struck out in red if they are removed from the left entry or underlined in blue if they are added to the right entry.
show diff - character: differences are shown in the right entry. Individual characters are struck out in red or underlined in blue as above.
show symmetric diff - word: differences are shown on both sides. Words are underlined and displayed in color.
show symmetric diff - character: differences are shown on both sides. Characters are underlined and displayed in color.
In the central column, a radio button allows you to select which side to keep for each field: the left side, the right side, or none. By default, the left entry is kept, and any fields not present in the left entry are obtained from the right entry.
Based upon your selection, the merged entry is shown, both as a preview (on the left) and as source code (on the right).
If you right-click on the preview, you can Print entry preview or Copy preview.
Finally, after selecting which fields to keep, you can decide to Merge entries. Alternatively, you can press Cancel.
JabRef can cleanup the entries of a database. To do a cleanup of the entries, go to Quality → Cleanup entries.
In the lower part, you can choose "Run field formatter", where you can choose different . Dependent on the database mode, "Recommended for BibTeX" or "Recommended for BibLaTeX". When pressing this button, the recommended cleanups for the respective mode is called.
JabRef can look for duplicated entries inside a database.
This feature is accessible directly through Quality → Find duplicates. It is also used when from a supported reference format or directly from the Internet.
Detection of potential duplicates is done by an edit distance algorithm. Extra weighting is put on the fields author, editor, title and journal.
When two potential duplicates are found, their fields are displayed side-by-side.
The differences between the two entries can be emphasized through the drop-down menu located at the upper right-hand corner of the window. Five ways of displaying the differences are offered:
plain text: as is, no emphasis
show diff - word: differences are shown in the right entry. Full words are struck out in red if they are removed from the left entry or underlined in blue if they are added to the right entry.
show diff - character: differences are shown in the right entry. Individual characters are struck out in red or underlined in blue as above.
show symmetric diff - word: differences are shown on both sides. Words are underlined and displayed in color.
show symmetric diff - character: differences are shown on both sides. Characters are underlined and displayed in color.
In the central column, a radio button allows you to select which side to keep for each field: the left side, the right side, or none. By default, the left entry is kept and any fields not present in the left entry are obtained from the right entry.
You are offered to:
Automatically remove exact duplicates. This button shows up if there are exact duplicates. Clicking that leads to all exact duplicates to be removed.
Keep left entry. Removes the right entry.
Keep right entry. Removes the left entry.
Keep both entries, meaning that you consider the two entries are not duplicates.
Keep merged entry only, meaning that the merged entry is the best. Both previous entries are removed.
Cancel, which will end the duplicate finding.
When you import new entries from a supported reference format, or fetch entries directly from the Internet, the inspection window allows you to select the entries you want to keep, to , and to perform some simple operations like generating BibTeX keys for the entries, or adding them to . If you are importing into an existing database, it is often easier to perform these operations before they are mixed in between the entries of your database.
Entries are first shown in the inspection window. Note that, if this takes too long (for example), you can click on the button Stop at the bottom of the window.
Once the entries displayed in the inspection window, none of them have been added to one of your databases yet.
By default, all the entries are selected for importation, as shown by the checked boxes in the Keep column. You can select/unselect an entry by clicking on these check boxes. On the left panel, buttons allow you to Select all the entries for importation, or to Deselect all the entries.
A left click on an entry (out of the check box and icons) let you choose it. It displays an preview of the entry below the entry table. As usual, you can choose several entries by using the Shift or the Ctrl keys. Then, pushing the button Delete on the left panel will remove the chosen entries from the table.
A right click on an entry displays a drop-down menu which allows you to:
delete the entry
add the entry to a group
link a local file to the entry
download the file corresponding to the entry
automatically set file links to the entry
attach an URL to the entry
On the left panel, if the box Generate keys is checked, keys will be automatically generated on import. You can also choose to generate the keys now by clicking on the button Generate now.
Once you are done with the entry selection, you can add these entries to your database by clicking on OK at the bottom of the window. Alternatively, you can Cancel the import.
JabRef supports the MS Office Bibliography XML format for exporting and importing.
As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.
Export (selected) entries in JabRef and choose Office 2007 xml format
Open Word, click on the References Tab
Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)
All entries are then available in the MS bibliography database
The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.
Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.
The field mapping for import and export is mostly the same, but there are some differences, as not all field exists in both formats. Additionally, some fields have to be treated differently during import/export.
The following fields are BibTeX/BibLaTex only fields, they have no representation in office XML. In the resulting XML file they are represented with the prefix BIBTEX_
The XML field SourceType
contains the associated entry type from the first table, while the original BibTeX/BibLaTex entrytype is preserved in the field BIBTEX_ENTRY
.
The following fields are XML-only fields, they have no BibTeX/BibLaTex representation: In the resulting bib database they are represented with the prefix msbib-
.
The following fields are treated as follows during export:
The following fields are treated as follows during import:
The importer based on the content has been written for IEEE and formatted papers. Other formats are not (yet) supported. In case a DOI is found on the first page, the DOI is used to generate the BibTeX information.
The next development step is to extract the title of the PDF, use the "Lookup DOI" and then the functionality from JabRef to fetch the BibTeX data.
We are also replacing the code completely by using another library. This is much effort and there is no timeline for that.
JabRef also offers to change the filenames. You can adapt the pattern at Preferences -> Import
Select "Choose pattern" and choose "bibtexkey - title" This results in the setting \bibtexkey\begin{title} - \format[RemoveBrackets]{\title}\end{title}
.
JabRef used to have support for , which returned back a full BibTeX entry or a PDF. Due to unclear copyright situation of a used library, this service was removed. Further, Mr.DLib changes its focus and will provide literature recommendations. See .
See also:
Potential duplicates are pointed out by an icon in the second column. A click on this icon allows you to . A button on the left panel allows you to Deselect all duplicates (without inspection).
More discussion at .
See
BibTeX/BibLaTeX entry type | XML entry type |
---|
BibTeX/BibLaTeX | XML field |
---|
BibTeX/BibLaTeX only fields | XML representation |
---|
BibTeX/BibLaTex represenation | XML field |
---|
BibTeX/BibLaTeX representation | XML field |
---|
BibTeX/BibLaTeX representation | XML field |
---|
book | Book |
inbook | BookSection |
booklet | BookSection |
incollection | BookSection |
article | JournalArticle |
inproceedings | ConferenceProceedings |
conference | ConferenceProceedings |
proceedings | ConferenceProceedings |
collection | ConferenceProceedings |
techreport | Report |
manual | Report |
mastersthesis | Report |
phdthesis | Report |
unpublished | Report |
patent | Patent |
misc | Misc |
electronic | ElectronicSource |
online | InternetSite |
periodical | ArticleInAPeriodical |
bibtexkey | Tag |
title | Title |
year | Year |
note | Comments |
volume | Volume |
language | LCID |
edition | Edition |
publisher | Publisher |
booktitle | BookTitle |
chapter | ChapterNumber |
issue | Issue |
school | Department |
institution | Institution |
doi | DOI |
url | url |
shorttitle | ShortTitle |
pages | Pages |
authors | Authors |
editors | Editors |
translator | Translator |
bookauthor | Bookauthor |
volumes | NumberVolumes |
series | BIBTEX_Series |
abstract | BIBTEX_Abstract |
keywords | BIBTEX_KeyWords |
crossref | BIBTEX_CrossRef |
howpublished | BIBTEX_HowPublished |
affiliation | BIBTEX_Affiliation |
contents | BIBTEX_Contents |
copyright | BIBTEX_Copyright |
price | BIBTEX_Price |
size | BIBTEX_Size |
intype | BIBTEX_InType |
paper | BIBTEX_Paper |
<BibTexEntryType> | BIBTEX_Entry |
<BibTexEntryType> | SourceType |
key (not BibTeX-Key) | BIBTEX_KEY |
pubstate | BITEX_Pubstate |
msbib-numberofvolume | NumberVolumes |
msbib-periodical | PeriodicalTitle |
msbib-day | Day |
msbib-accessed | Accessed (YearAccessed, MonthAccessed, DayAccessed) |
msbib-medium | Medium |
msbib-recordingnumber | RecordingNumber |
msbib-theater | Theater |
msbib-distributor | Distributor |
msbib-broadcaster | Broadcaster |
msbib-station | Station |
msbib-type | Type |
msbib-court | Court |
msbib-reporter | Reporter |
msbib-casenumber | CaseNumber |
msbib-abbreviatedcasenumber | AbbreviatedCaseNumber |
msbib-productioncompany | ProductionCompany |
msbib-producername | producerNames |
msbib-composer | composers |
msbib-conductor | conductors |
msbib-performer | performers |
msbib-writer | writers |
msbib-director | directors |
msbib-compiler | compilers |
msbib-interviewer | interviewers |
msbib-interviewee | interviewees |
msbib-inventor | inventors |
msbib-counsel | counsels |
booktitle | ConferenceName |
journal | JournalName |
journaltitle | JournalName |
month | Month |
date | year, month, day (if date is in ISO 8601 form |
issue | issue |
isbn | StandardNumber |
issn | StandardNumber |
lccn | StandardNumber |
mrnumer | StandardNumber |
address (if field contains at least one comma) | City |
address (if field does not contain a comma) | City, StateProvince, CountryRegion |
location (if field contains at least one comma) | City |
location (if field does not contain a comma) | City, StateProvince, CountryRegion |
<EntryType is thesis> | ThesisType |
<EntryType is patent> number | PatentNumber |
number (entry is not patent) | Number |
Authors/Editors (single author/editor is enclosed in curly braces) | Corporate |
organization | ConferenceName |
journaltitle | Journal |
location | City, StateProvince, CountryRegion |
Import and export of bibliographic information
This feature is available through Search → Replace string....
JabRef allows you to define and use your own export filters, in the same way as the standard export filters are defined. An export filter is defined by one or more layout files, which with the help of a collection of built-in formatter routines specify the format of the exported files. Your layout files must be prepared in a text editor outside of JabRef.
The custom export format of JabRef is an alternative to the , which is an XML-based format to describe bibliographic rendering.
Existing public files are collected at .
The only requirement for a valid export filter is the existence of a file with the extension .layout. To add a new custom export filter, open the dialog box Options → Manage custom exports, and click Add new. A new dialog box will appear, allowing you to specify a name for the export filter (which will appear as one of the choices in the File type dropdown menu of the file dialog when you use the File → Export menu choice in the JabRef window), the path to the .layout file, and the preferred file extension for the export filter (which will be the suggested extension in the file dialog when you use the export filter). Note that if you intend to use the custom export filter also for "Copy...->Export to Clipboard" in the maintable, the extension must be one of the following: txt
, rtf
, rdf
, xml
, html
, htm
, csv
, or ris
.
To see examples of how export filters are made, look for the package containing the layout files for the standard export filters on our download page.
Regarding tool support, there is the to quickly create export filters.
Let us assume that we are creating an HTML export filter. While the export filter only needs to consist of a single .layout file, which in this case could be called html.layout, you may also want to add two files called html.begin.layout and html.end.layout. The former contains the header part of the output, and the latter the footer part. JabRef will look for these two files whenever the export filter is used, and if found, either of these will be copied verbatim to the output before or after the individual entries are written.
Note that these files must reside in the same directory as html.layout, and must be named by inserting .begin and .end, respectively. In our example export filter, these could look like the following:
html.begin.layout: <!DOCTYPE html><html> <body style="color:#275856; font-family: Arial, sans-serif;">
html.end.layout: </body></html>
The file html.layout provides the default template for exporting one single entry. If you want to use different templates for different entry types, you can do this by adding entry-specific .layout files. These must also reside in the same directory as the main layout file, and are named by inserting .entrytype into the name of the main layout file. The entry type name must be in all lowercase. In our example, we might want to add a template for book entries, and this would go into the file html.book.layout. For a PhD thesis we would add the file html.phdthesis.layout, and so on. These files are similar to the default layout file, except that they will only be used for entries of the matching type. Note that the default file can easily be made general enough to cover most entry types in most export filters.
Layout files are created using a simple markup format where commands are identified by a preceding backslash. All text not identified as part of a command will be copied verbatim to the output file.
An arbitrary word preceded by a backslash, e.g. \author
, \editor
, \title
or \year
, will be interpreted as a reference to the corresponding field, which will be copied directly to the output.
Often there will be a need for some preprocessing of the field contents before output. This is done using a field formatter - a java class containing a single method that manipulates the contents of a field.
A formatter is used by inserting the \format
command followed by the formatter name in square braces, and the field command in curly braces, e.g.:
\format[ToLowerCase]{\author}
You can also specify multiple formatters separated by commas. These will be called sequentially, from left to right, e.g.
\format[ToLowerCase,HTMLChars]{\author}
will cause the formatter ToLowerCase to be called first, and then HTMLChars will be called to format the result. You can list an arbitrary number of formatters in this way.
The argument to the formatters, withing the curly braces, does not have to be a field command. Instead, you can insert normal text, which will then be passed to the formatters instead of the contents of any field. This can be useful for some fomatters, e.g. the CurrentDate formatter (described below).
Some formatters take an extra argument, given in parentheses immediately after the formatter name. The argument can be enclosed in quotes, which is necessary if it includes the parenthesis characters. For instance, \format[Replace("\s,_")]{\journal}
calls the Replace formatter with the argument \s,_ (which results in the "journal" field after replacing all whitespace by underscores).
See below for a list of built-in export formatters.
Some static output might only make sense if a specific field is set. For instance, say we want to follow the editor names with the text (Ed.)
. This can be done with the following text:
\format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.)
However, if the editor
field has not been set - it might not even make sense for the entry being exported - the (Ed.)
would be left hanging. This can be prevented by instead using the \begin
and \end
commands:
\begin{editor} \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.) \end{editor}
The \begin
and \end
commands make sure the text in between is printed if and only if the field referred in the curly braces is defined for the entry being exported.
A conditional block can also be dependent on more than one field, and the content is only printed when simple boolean conditions are satisfied. Three boolean operators are provided:
AND operator : &
, &&
OR operator : |
, ||
NOT operator : !
For example, to output text only if both year
and month
are set, use a block like the following: \begin{year&&month}Month: \format[HTMLChars]{\month}\end{year&&month}
which will print "Month: " plus the contents of the month
field, but only if also the year
field is defined.
As an example for the usage of the NOT operator, consider the following:
\begin{!year}\format[HTMLChars]{(no year)}\end{!year}
Here, "no year" is printed as output text if no year field is defined.
Note: Use of the \begin
and \end
commands is a key to creating layout files that work well with a variety of entry types.
If you wish to separate your entries into groups based on a certain field, use the grouped output commands. Grouped output is very similar to conditional output, except that the text in between is printed only if the field referred in the curly braces has changed value.
For example, let's assume I wish to group by keyword. Before exporting the file, make sure you have sorted your entries based on keyword. Now use the following commands to group by keyword:
\begingroup{keywords}New Category: \format[HTMLChars]{\keywords} \endgroup{keywords}
JabRef provides the following set of formatters:
Authors
: this formatter provides formatting options for the author and editor fields; for detailed information, see below. It deprecates a range of dedicated formatters provided in versions of JabRef prior to 2.7.
CreateBibORDFAuthors
: formats authors for according to the requirements of the Bibliographic Ontology (bibo).
CreateDocBookAuthors
: formats the author field in DocBook style.
CreateDocBookEditors
: formats the editor field in DocBook style.
CurrentDate
: outputs the current date. With no argument, this formatter outputs the current date and time in the format "yyyy.MM.dd hh:mm:ss z" (date, time and time zone). By giving a different format string as argument, the date format can be customized. For example \format[CurrentDate]{yyyy.MM.dd}
will give the date only, e.g. 2005.11.30.
DateFormatter
: formats a date. With no argument, the date is given in ISO-format (yyyy-MM-dd), which is also the expected format of the input. The argument may contain yyyy
, MM
, and dd
in any combination. For example \format[DateFormatter(MM/yyyy)]{\date}
will output 07/2016 if the date field contains 2016-07-15.
Default
: takes a single argument, which serves as a default value. If the string to format is non-empty, it is output without changes. If it is empty, the default value is output. For instance, \format[Default(unknown)]{\year}
will output the entry's year if set, and "unknown" if no year is set.
DOIStrip
: strips any prefixes from the DOI string.
DOICheck
: provides the full url for a DOI link.
EntryTypeFormatter
: camel case of entry types, so "inbook" -> "InBook".
FileLink(filetype)
: if no argument is given, this formatter outputs the first external file link encoded in the field. To work, the formatter must be supplied with the contents of the "file" field.
This formatter takes the name of an external file type as an optional argument, specified in parentheses after the formatter name. For instance, \format[FileLink(pdf)]{\file}
specifies pdf
as an argument. When an argument is given, the formatter selects the first file link of the specified type. In the example, the path to the first PDF link will be output.
FirstPage
: returns the first page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "345".
FormatChars
: This formatter converts LaTeX character sequences their equicalent unicode characters and removes other LaTeX commands without handling them.
FormatPagesForHTML
: replaces "--" with "-".
FormatPagesForXML
: replaces "--" with an XML en-dash.
GetOpenOfficeType
: returns the number used by the OpenOffice.org bibliography system (versions 1.x and 2.x) to denote the type of this entry.
HTMLChars
: replaces TeX-specific special characters (e.g. {\"{a}}
or {\sigma})
with their HTML representations, and translates LaTeX commands \emph
, \textit
, \textbf
, \texttt
, \underline
, \textsuperscript
, \textsubscript
, \sout
into HTML equivalents.
HTMLParagraphs
: interprets two consecutive newlines (e.g. \n \n) as the beginning of a new paragraph and creates paragraph-html-tags accordingly.
IfPlural
: outputs its first argument if the input field looks like an author list with two or more names, or its second argument otherwise. E.g. \format[IfPlural(Eds.,Ed.)]{\editor}
will output "Eds." if there is more than one editor, and "Ed." if there is only one.
JournalAbbreviator
: The given input text is abbreviated according to the journal abbreviation lists. If no abbreviation for input is found (e.g. not in list or already abbreviated), the input will be returned unmodified. For instance, when using \format[JournalAbbreviator]{\journal}
, "Physical Review Letters" gets "Phys. Rev. Lett."
LastPage
: returns the last page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "360".
NoSpaceBetweenAbbreviations
: LayoutFormatter that removes the space between abbreviated First names. Example: J. R. R. Tolkien becomes J.R.R. Tolkien.
NotFoundFormatter
: Formatter used to signal that a formatter hasn't been found. This can be used for graceful degradation if a layout uses an undefined format.
Number
: outputs the 1-based sequence number of the current entry in the current export. This formatter can be used to make a numbered list of entries. The sequence number depends on the current entry's place in the current sort order, not on the number of calls to this formatter.
Ordinal
: replaces numbers with ordinals so 1
is replaced with 1st
etc.
RemoveBrackets
: removes all curly brackets "{" or "}".
RemoveBracketsAddComma
: removes all curly brackets "{" or "}". The closing curly bracket is replaced by a comma.
RemoveLatexCommands
: removes LaTeX commands like \em
, \textbf
, etc. If used together with HTMLChars
or XMLChars
, this formatter should be called last.
RemoveWhitespace
: removes all whitespace characters.
Replace(regexp,replacewith)
: does a regular expression replacement. To use this formatter, a two-part argument must be given. The parts are separated by a comma. To indicate the comma character, use an escape sequence: ,
The second part is the text to replace all matches with.
RisAuthors
: to be documented.
RisKeywords
: to be documented.
RisMonth
: to be documented.
RTFChars
: replaces TeX-specific special characters (e.g. {^a} or {"{o}}) with their RTF representations, and translates LaTeX commands \emph, \textit, \textbf into RTF equivalents.
ToLowerCase
: turns all characters into lower case.
ToUpperCase
: turns all characters into upper case.
WrapContent
: This formatter outputs the input value after adding a prefix and a postfix, as long as the input value is non-empty. If the input value is empty, an empty string is output (the prefix and postfix are not output in this case). The formatter requires an argument containing the prefix and postix separated by a comma. To include the comma character in either, use an escape sequence (,).
WrapFileLinks
: See below.
XMLChars
: replaces TeX-specific special characters (e.g. {^a} or {"{o}}) with their XML representations.
Authors
formatterTo accommodate for the numerous citation styles, the Authors
formatter allows flexible control over the layout of the author list. The formatter takes a comma-separated list of options, by which the default values can be overridden. The following option/value pairs are currently available, where the default values are given in curly brackets.
AuthorSort = [ {FirstFirst} | LastFirst | LastFirstFirstFirst ]
specifies the order in which the author names are formatted.
FirstFirst
: first names are followed by the surname.
LastFirst
: the authors' surnames are followed by their first names, separated by a comma.
LastFirstFirstFirst
: the first author is formatted as LastFirst, the subsequent authors as FirstFirst.
AuthorAbbr = [ FullName | LastName | {Initials} | InitialsNoSpace | FirstInitial | MiddleInitial ]
specifies how the author names are abbreviated.
FullName
: shows full author names; first names are not abbreviated.
LastName
: show only surnames, first names are removed.
Initials
: all first names are abbreviated.
InitialsNospace
: as Initials, with any spaces between initials removed.
FirstInitial
: only first initial is shown.
MiddleInitial
: first name is shown, but all middle names are abbreviated.
AuthorPunc = [ {FullPunc} | NoPunc | NoComma | NoPeriod ]
specifies the punctuation used in the author list when AuthorAbbr
is used
FullPunc
: no changes are made to punctuation.
NoPunc
: all full stops and commas are removed from the author name.
NoComma
: all commas are removed from the author name.
NoPeriod
: all full stops are removed from the author name.
AuthorSep = [ {Comma} | And | Colon | Semicolon | Sep=<string> ]
specifies the separator to be used between authors. Any separator can be specified, with the Sep=<string>
option. Note that appropriate spaces need to be added around string
.
AuthorLastSep = [ Comma | {And} | Colon | Semicolon | Amp | Oxford | LastSep=<string> ]
specifies the last separator in the author list. Any separator can be specified, with the LastSep=<string>
option. Note that appropriate spaces need to be added around string
.
AuthorNumber = [ {inf} | <integer> ]
specifies the number of authors that are printed. If the number of authors exceeds the maximum specified, the authorlist is replaced by the first author (or any number specified by AuthorNumberEtAl
), followed by EtAlString
.
AuthorNumberEtAl = [ {1} | <integer> ]
specifies the number of authors that are printed if the total number of authors exceeds AuthorNumber
. This argument can only be given after AuthorNumber
has already been given.
EtAlString = [ { et al.} | EtAl=<string> ]
specifies the string used to replace multiple authors. Any string can be given, using EtAl=<string>
If an option is unspecified, the default value (shown in curly brackets above) is used. Therefore, only layout options that differ from the defaults need to be specified. The order in which the options are defined is (mostly) irrelevant. So, for example,
\format[Authors(Initials,Oxford)]{\author}
is equivalent to
\format[Authors(Oxford,Initials)]{\author}
As mentioned, the order in which the options are specified is irrelevant. There is one possibility for ambiguity, and that is if both AuthorSep
and AuthorLastSep
are given. In that case, the first applicable value encountered would be for AuthorSep
, and the second for AuthorLastSep
. It is good practise to specify both when changing the default, to avoid ambiguity.
Given the following authors, "Joe James Doe and Mary Jane and Bruce Bar and Arthur Kay" ,the Authors
formatter will give the following results:
Authors()
, or equivalently, Authors(FirstFirst,Initials,FullPunc,Comma,And,inf,EtAl= et al.)
J. J. Doe, M. Jane, B. Bar and A. Kay
Authors(LastFirstFirstFirst,MiddleInitial,Semicolon)
Doe, Joe J.; Mary Jane; Bruce Bar and Arthur Kay
Authors(LastFirst,InitialsNoSpace,NoPunc,Oxford)
Doe JJ, Jane M, Bar B, and Kay A
Authors(2,EtAl= and others)
J. J. Doe and others
Most commonly available citation formats should be possible with this formatter. For even more advanced options, consider using the Custom Formatters detailed below.
WrapFileLinks
formatterThis formatter iterates over all file links, or all file links of a specified type, outputting a format string given as the first argument. The format string can contain a number of escape sequences indicating file link information to be inserted into the string.
This formatter can take an optional second argument specifying the name of a file type. If specified, the iteration will only include those files with a file type matching the given name (case-insensitively). If specified as an empty argument, all file links will be included.
After the second argument, pairs of additional arguments can be added in order to specify regular expression replacements to be done upon the inserted link information before insertion into the output string. A non-paired argument will be ignored. In order to specify replacements without filtering on file types, use an empty second argument.
The escape sequences for embedding information are as follows:
\i
: This inserts the iteration index (starting from 1), and can be useful if the output list of files should be enumerated.
\p
: This inserts the file path of the file link.
\f
: This inserts the name of the file link's type.
\x
: This inserts the file's extension, if any.
\d
: This inserts the file link's description, if any.
For instance, an entry could contain a file link to the file "/home/john/report.pdf" of the "PDF" type with description "John's final report". Using the WrapFileLinks formatter with the following argument:
\format[WrapFileLinks(\i. \d (\p))]{\file}
would give the following output:
John's final report (/home/john/report.pdf)
If the entry contained a second file link to the file "/home/john/draft.txt" of the "Text file" type with description 'An early "draft"', the output would be as follows:
John's final report (/home/john/report.pdf)
An early "draft" (/home/john/draft.txt)
If the formatter was called with a second argument, the list would be filtered. For instance:
\format[WrapFileLinks(\i. \d (\p),,text file)]{\file}
would show only the text file:
An early "draft" (/home/john/draft.txt)
If we wanted this output to be part of an XML styled output, the quotes in the file description could cause problems. Adding two additional arguments to translate the quotes into XML characters solves this:
\format[WrapFileLinks(\i. \d (\p),,text file,",")]{\file}
would give the following output:
An early "draft" (/home/john/draft.txt)
Additional pairs of replacements could be added.
If none of the available formatters can do what you want to achieve, you can add your own by implementing the net.sf.jabref.export.layout.LayoutFormatter
interface. If you insert your class into the net.sf.jabref.export.layout.format
package, you can call the formatter by its class name only, like with the standard formatters. Otherwise, you must call the formatter by its fully qualified name (including package name). In any case, the formatter must be in your classpath when running JabRef.
From JabRef 2.2, it is possible to define custom name formatters using the BibTeX-sty-file syntax. This allows ultimate flexibility, but is a cumbersome to write
You can define your own formatter in the preference tab "Name Formatter" using the following format and then use it with the name given to it as any other formatter
<case1>@<range11>@<format>@<range12>@<format>@<range13>...@@ <case2>@<range21>@... and so on.
This format first splits the task to format a list of author into cases depending on how many authors there are (this is since some formats differ depending on how many authors there are). Each individual case is separated by @@ and contains instructions on how to format each author in the case. These instructions are separated by a @.
Cases are identified using integers (1, 2, 3, etc.) or the character * (matches any number of authors) and will tell the formatter to apply the following instructions if there are a number of less or equal of authors given.
Ranges are either <integer>..<integer>
, <integer>
or the character *
using a 1 based index for indexing authors from the given list of authors. Integer indexes can be negative to denote them to start from the end of the list where -1 is the last author.
For instance with an authorlist of "Joe Doe and Mary Jane and Bruce Bar and Arthur Kay":
1..3 will affect Joe, Mary and Bruce
4..4 will affect Arthur
* will affect all of them
2..-1 will affect Mary, Bruce and Arthur
The <format>
-strings use the BibTeX formatter format:
The four letters v, f, l, j indicate the name parts von, first, last, jr which are used within curly braces. A single letter v, f, l, j indicates that the name should be abbreviated. If one of these letters or letter pairs is encountered JabRef will output all the respective names (possibly abbreviated), but the whole expression in curly braces is only printed if the name part exists.
For instance if the format is "{ll} {vv {von Part}} {ff}" and the names are "Mary Kay and John von Neumann", then JabRef will output "Kay Mary" (with two space between last and first) and "Neuman von von Part John".
I give two examples but would rather point you to the BibTeX documentation.
Small example: "{ll}, {f.}"
will turn "Joe Doe"
into "Doe, J."
Large example:
To turn:
"Joe Doe and Mary Jane and Bruce Bar and Arthur Kay"
into
"Doe, J., Jane, M., Bar, B. and Kay, A."
you would use
1@*@{ll}, {f}.@@2@1@{ll}, {f}.@2@ and {ll}, {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}.@-1@ and {ll}, {f}.
This help applies for older versions of JabRef. From JabRef 3.6 onwards, is supported
JabRef is capable of exporting the contents of the BibTeX database, along with groups information, to an external MySQL or PostgreSQL database.
You just need to be sure you have an user/password with full privileges on a MySQL or PostgreSQL server.
Choose File → Export to external SQL database, or click the corresponding button on the toolbar.
Select the database type from the drop down menu for Server Type.
Enter the database connection information, and click Connect.
JabRef will then connect to the specified database, create new tables, and populate those tables with entries and groups information. You will be able to export as many JabRef bib databases as you want without losing the previously explored data. The system recognize a database uniquely by its full path (directory structure + filename). In case you export the same JabRef database more than once, the data of that database will be update in the SQL database. Note that you will not be prompted for the connection information on subsequent exports. If you would like to export to a different database, you can change the connection information by choosing File → Connect to external SQL database (or by clicking the associated toolbar button), and then performing an export. Since version 2.8 tables are not dropped, and user is able to store more than one JabRef database into a single SQL database.
When importing a database from an SQL database (File → Import from external SQL database), JabRef will place each database found in a different tab.
Groups allow to structure a BibTeX database in a tree-like way that is similar to organizing files on disk in directories and subdirectories. The two main differences are:
While a file is always located in exactly one directory, an entry may be contained in more than one group.
Groups may use certain criteria to dynamically define their content. New entries that match these criteria are automatically contained in these groups. This feature is not available in common file systems, but in several Email clients (e.g. Thunderbird and Opera).
Selecting a group shows the entries contained in that group. Selecting multiple groups shows the entries contained in any group (union) or those contained in all groups (intersection), depending on the current settings. All this is explained in detail below.
Group definitions are database-specific; they are saved as a @COMMENT
block in the .bib
-file and are shared among all users. (Future versions of JabRef might support user-dependent groups.)
The groups interface is shown in the side pane on the left of the screen. It can be toggled on or off by pressing Ctrl + Shift + G or by the groups button in the toolbar. The interface has several buttons, but most functions are accessed via a context ("right-click") menu. Drag and Drop is also supported.
To manually assign entries to a group, press the New Group button, enter a name for the group, then press OK, leaving all values at their defaults. Now select the entries to be assigned to the group and use Drag and Drop to the group, or the option Add to group in the context menu. Finally select the group to see its content (which should be the entries you just assigned).
In case you want automatically fill the groups content based on keywords, do the following: Press the New Group button, enter a name for the group, and select the option to dynamically group entries by searching a field for a keyword. Enter the keyword to search for, then click OK. Finally select the group to see its content (which should be all entries whose keywords
field contains the keyword you specified).
In case a group should be filled with entries containing defined search strings, do the following: Press the New Group button, enter a name for the group, and select the option to dynamically group entries by a free-form search expression. Enter author=smith
as a search expression (replace smith
with a name that actually occurs in your database) and click OK. Finally select the group to see its content (which should be all entries whose author
field contains the name you specified).
You can also intersact or unition groups: Create two different groups (e.g. as described above). Click the Settings button and make sure that Union is selected. Now select both groups. You should see all entries contained in any of the two groups. Click Settings again and select Intersection. Now you should see only those entries contained in both groups (which might be none at all, or exactly the same entries as before in case both groups contain the same entries).
JabRef allows you to easily identify groups that overlap with the currently selected groups (i.e. that contain at least one entry that is also contained in the currently selected groups). Click Settings and activate the option to highlight overlapping groups. Then select a group that overlaps with other groups. The other groups should be highlighted.
In JabRef there are four different types of groups:
The group All Entries, which -- as the name suggests -- contains all entries, is always present and cannot be edited or removed.
Static groups behave like directories on disk and contain only those entries that you explicitly assign to them.
Dynamic groups based on keyword search contain entries in which a certain BibTeX field (e.g. keywords
) contains a certain keyword (e.g. electrical
). This method does not require manual assignment of entries, but uses information that is already present in the database. If all entries in your database have suitable keywords in their keywords
field, using this type of group might be the best choice.
Dynamic groups based on free-form search expressions contain entries that match a specified search expression, using the same syntax as the on the side pane. This supports logical operators (AND
, OR
, NOT
) and allows to specify one or more BibTeX fields to search, facilitating more flexible group definitions than a keyword search (e.g. author=smith and title=electrical
).
Every group that you create is of one of the last three types. The group editing dialog, which is invoked by double-clicking on a group, shows a short description of the selected/edited group in plain English.
Just like directories, groups are structured like a tree, with the group All Entries at the root. By right-clicking on a group you can add a new group to the tree, either at the same level as the selected group or as a subgroup of it. The New Group button lets you create a new subgroup of the group All Entries, regardless of the currently selected group(s). The context menu also allows to remove groups and/or subgroups, to sort subgroups alphabetically, or to move groups to a different location in the tree. The latter can also be done by Drag and Drop, with the restriction that Drag and Drop does not support changing the order of a group's subgroups.
Undo and redo is supported for all edits.
Defines the name of the group, as displayed in the group panel.
A description of the group, to help you remember what it is about. Hovering the mouse over the group name displays this description.
Remark: outdated: The new interface (JabRef 5.0) displays a list of 5 choices under "Collect by".
Static groups are populated only by explicit manual assignment of entries. After creating a static group you select the entries to be assigned to it, and use either Drag and Drop or the main table's context menu to perform the assignment. To remove entries from a static group, select them and use the main table's context menu. There are no options to be configured.
This method of grouping requires that all entries have a unique BibTeX key. In case of missing or duplicate BibTeX keys, the assignment of the affected entries cannot be correctly restored in future sessions.
The content of a dynamic group is defined by a logical condition. Only entries that meet this condition are contained in the group. This method uses the information stored in the database itself, and updates dynamically whenever the database changes.
Two types of conditions can be used:
Searching a field for a keyword
This method groups entries in which a specified BibTeX field (e.g. keywords
) contains a specified search term (e.g. electrical
). Obviously, for this to work, the grouping field must be present in every entry, and its content must be accurate. The above example would group all entries referring to something electrical. Using the field author
allows to group entries by a certain author, etc. The search can either be done as a plain-text or a regular expression search. In the former case, JabRef allows to manually assign/remove entries to/from the group by simply appending/removing the search term to/from the content of the grouping field. This makes sense only for the keywords
field or for self-defined fields, but obviously not for fields like author
or year
.
In the groups view, dynamic groups are shown in italics by default. This can be turned off in the preferences (Options → Preferences → Groups, box "Show dynamic groups in italics").
By default, a group is independent of its position in the groups tree: When selected, only the group's contents are shown. However, especially when using dynamic groups, it is often useful to define a subgroup that refines its supergroup, i.e., when selected, entries contained in both groups are displayed. For example, create a supergroup containing entries with the keyword distribution
and a subgroup containing entries with the keyword gauss
that refines this supergroup. Selecting the subgroup now displays entries that match both conditions, i.e. are concerned with Gaussian distributions. Note that items that only belong to the subgroup gauss
will not be shown, i.e. for an item to be displayed when selecting gauss
it is necessary to be assigned to both the subgroup gauss
and the supergroup distribution
. By adding another refining subgroup for laplace
to the original supergroup, the grouping can easily be extended. In the groups tree, refining groups have a special icon (this can be turned off in the preferences).
The logical complement to a refining group is a group that includes its subgroups, i.e. when selected, not only the group's own entries, but also its subgroups' entries are shown. In the groups tree, this type of group has a special icon (this can be turned off in the preferences).
In other words, this defines which entries are displayed when this group is selected:
independant. Displays only this group's entries.
intersection. Displays entries contained in both this group and its supergroup.
union. Displays entries contained in this group or its subgroups.
Selecting a group shows the entries contained in that group by highlighting them and, depending on the settings (accessible by clicking the Settings button), moving them to the top of the list and/or selecting them. These options are identical to those available for the regular search.
When multiple groups are selected, either the union or the intersection of their content is shown, depending on the current settings. This allows to quickly combine multiple conditions, e.g. if you have a static group Extremely Important
to which you assign all extremely important entries, you can view the extremely important entries in any other group by selecting both groups (this requires to have Intersection selected in the settings).
When viewing the contents of the selected group(s), a search can be performed within these contents using the regular search facility.
The Settings button offers an option to highlight overlapping groups. If this is activated, upon selection of one or more groups, all groups that contain at least one of the entries contained in the currently selected group(s) are highlighted. This quickly identifies overlap between the groups' contents. You might, for example, create a group To Read
that contains all entries which you plan to read. Now, whenever you select any group, the group To Read
is highlighted if the selected group contains entries that you plan to read.
The Settings button offers also an option to automatically assign new entries to selected groups. If this is activated, upon selection of one or more groups, all the new entries created will be assigned to the selected groups. This work both for entries created from menu button or entries pasted from clipboard. This option can also be enabled/disabled from the menu "option > preferences > group".
After mastering the grouping concepts described above, the following advanced features might come in handy.
By clicking the Automatically create groups for database button, you can quickly create a set of groups appropriate for your database. This feature will gather all words found in a specific field of your choice, and create a group for each word. This is useful for instance if your database contains suitable keywords for all entries. By autogenerating groups based on the keywords
field, you should have a basic set of groups at no cost.
You can also specify characters to ignore, for instance commas used between keywords. These will be treated as separators between words, and not part of them. This step is important for combined keywords such as laplace distribution
to be recognized as a single semantic unit. (You cannot use this option to remove complete words. Instead, delete the unwanted groups manually after they were created automatically.)
The Refresh button updates the entry table to reflect the current groups selection. This is usually done automatically, but in rare occasions (e.g. after a group-related undo/redo) a manual refresh is required.
If a refining group is a subgroup of a group that includes its subgroups -- the refining group's siblings --, these siblings are ignored when the refining group is selected.
RemoveTilde
: replaces the tilde character used in LaTeX as a non-breakable space by a regular space. Useful in combination with the discussed in the next section.
The first part is the regular expression to search for. Remember that any commma character must be preceded by a backslash, and consequently a literal backslash must be written as a pair of backslashes. A description of Java regular expressions can be found at .
An icon can be displayed in front of the group name. Choose your favorite icon among the ones available at , and enter its name of the field Icon. The color of the icon can be set in to the field Color.
Using a free-form search expression
This is similar to the above, but rather than search a single field for a single search term, the can be used, which supports logical operators (AND
, OR
, NOT
) and allows to search multiple BibTeX fields. For example, the search expression keywords=regression and not keywords=linear
groups entries concerned with non-linear regression.
This information is outdated. Please help to improve it.
JabRef allows you to define and use your own importers, in very much the same way as the standard import filters are defined. An import filter is defined by one or more Java classes, which parse the contents of a file from an input stream and create BibTex entries. So with some basic Java programming you can add an importer for your favorite source of references or register a new, improved version of an existing importer. Also, this allows you to add compiled custom importers that you might have obtained e.g. from GitHub without rebuilding JabRef (see "Sharing your work" below).
Custom importers take precedence over standard importers. This way, you can override existing importers for the Autodetect and Command Line features of JabRef. Custom importers are ordered by name.
Make sure, you have a compiled custom import filter (one or more .class
files as described below) and the class files are in a directory structure according to their package structure. To add a new custom import filter, open the dialog box Options → Manage custom imports, and click Add from folder. A file chooser will appear, allowing you to select the classpath of your importer, i.e. the directory where the top folder of the package structure of your importer resides. In a second file chooser you select your importer class file, which must be derived from ImportFormat
. By clicking Select new ImportFormat Subclass, your new importer will appear in the list of custom import filters. All custom importers will appear in the File → Import → Custom Importers and File → Import and Append → Custom Importers submenus of the JabRef window.
Please note that if you move the class to another directory you will have to remove and re-add the importer. If you add a custom importer under a name that already exists, the existing importer will be replaced. Although in some cases it is possible to update an existing custom importer without restarting JabRef (when the importer is not on the classpath), we recommend restarting JabRef after updating an custom-importer. You can also register importers contained in a ZIP- or JAR-file, simply select the Zip- or Jar-archive, then the entry (class-file) that represents the new importer.
For examples and some helpful files on how to build your own importer, please check our download page.
Let us assume that we want to import files of the following form:
In your favorite IDE or text editor create a class derived from ImportFormat
that implements methods getFormatName()
, isRecognizedFormat
and importEntries()
. Here is an example:
Note that the example is in the default package. Suppose you have saved it under /mypath/SimpleCSVImporter.java
. Also suppose the JabRef-2.0.jar is in the same folder as SimpleCSVImporter.java
and Java is on your command path. Compile it using a JSDK 1.4 e.g. with
Now there should be a file /mypath/SimpleCSVImporter.class
.
In JabRef, open Options → Manage custom imports, and click Add from folder. Navigate to /mypath
and click the Select ... button. Select the SimpleCSVImporter.class
and click the Select ... button. Your importer should now appear in the list of custom importers under the name "Simple CSV Importer" and, after you click Close also in the File → Import → Custom Importers and File → Import and Append → Custom Importers submenus of the JabRef window.
With custom importer files, it's fairly simple to share custom import formats between users. If you write an import filter for a format not supported by JabRef, or an improvement over an existing one, we encourage you to post your work on our GitHub page. We'd be happy to distribute a collection of submitted import files, or to add to the selection of standard importers.
Based on the .aux
file generated by LaTeX, JabRef can create a subdatabase containing only the cited entries.
This feature is available through Tools → New subdatabase based on AUX file.
This information is outdated. Please help to improve it.
JabRef can export databases to EndNote-readable files. To use this feature, choose File → Export, choose the file type Endnote (txt) and then specify the name of the export file.
The default EndNote Import filter does not handle multiple authors or editors properly. There are two options to work around this:
Use the built-in filter and fix the file later. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import. Click Import to start the import. After import, select Edit→ Change Text. Change Any Field to Author. Enter " and " into the search field (without quotes). enter a return character into the change field (Option + Enter on Mac OS X, Ctrl + Enter on Windows XP). Click Change. Repeat with the Secondary Author field.
Install the EndNote Import from JabRef filter in the EndNote Extras. Follow the instructions in Advanced Use below. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import from JabRef (if it does not appear, select Other filters. If it still doesn't appear, it was not correctly installed.) Click Import to start the import.
The EndNote Export filter maps BibTeX entrytypes to EndNote reference types as follows:
By default, the export filter assumes that entries in the author or editor fields in brackets are corporate authors and replaces the brackets with a trailing comma. However, this means that entries that include LaTeX code in brackets will be assumed to be corporate authors and therefore will be improperly formatted.
For better interoperability between EndNote and JabRef, download the EndNote filter set from the Resources page of JabRef's web page.
The official browser extension automatically identifies and extracts bibliographic information on websites and sends them to JabRef with one click.
JabRef has an official browser extension. It automatically identifies and extracts bibliographic information on websites and sends them to JabRef with one click.
When you find an interesting article through Google Scholar, the arXiv or journal websites, this browser extension allows you to add those references to JabRef. Even links to accompanying PDFs are sent to JabRef, where those documents can easily be downloaded, renamed and placed in the correct folder. A wide range of publisher sites, library catalogs and databases are supported.
Normally, you simply install the extension from the browser store and are ready to go.
Sometimes, a manual installation is necessary (e.g. if you use the portable version of JabRef). In this case, please take the following steps:
Make sure you have at least JabRef 5.0 installed.
On Windows 7, please upgrade Powershell.
Download the following files and copy them to the same directory as JabRef.exe
Make sure that the correct file name of the JabRef.bat
file is specified in JabRefHost.ps1
under $jabRefExe
.
Run the following command from the console (with the correct path to the jabref.json
file):
For Firefox support:
For Chrome/Opera support
You may need to change the root HKEY_LOCAL_MACHINE
to HKEY_CURRENT_USER
if you don't have admin rights.
Download and install the Debian package of JabRef 5.0
Download org.jabref.jabref.json and put it into
/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json
to install with admin rights for all users
~/.mozilla/native-messaging-hosts/org.jabref.jabref.json
to install without admin rights for the current user
Install the snap package of JabRef 5.0
Connect the appropriate plug for the selected browser:
Firefox: snap connect jabref:hostfs-mozilla-native-messaging-jabref
Chrome: snap connect jabref:etc-opt-chrome-native-messaging-jabref
Chromium: snap connect jabref:etc-chromium-native-messaging-jabref
Download and install the DMG package of JabRef 5.0.
Download org.jabref.jabref.json and put it into
/Library/Application Support/Mozilla/NativeMessagingHosts/org.jabref.jabref.json
to install with admin rights for all users
~/Library/Application Support/Mozilla/NativeMessagingHosts/org.jabref.jabref.json
to install without admin rights for the current user
After the installation, you should be able to import bibliographic references into JabRef directly from your browser. Just visit a publisher site or some other website containing bibliographic information (for example, the arXiv) and click the JabRef symbol in the Firefox search bar (or press Alt+Shift+J). Once the JabRef browser extension has extracted the references and downloaded the associated PDF's, the import window of JabRef opens.
You might want to configure JabRef so that new entries are always imported in an already opened instance of JabRef. For this, activate "Remote operation" under the Advanced tab in the JabRef Preferences.
Sharing libraries.
JabRef allows to share both Bib(La)TeX database and SQL database.
When sharing a Bib(La)TeX database, JabRef automatically recognizes a change in the bib
file on disk and notifies the user of it. This works well on network drives.
Note: the use of a version control system (SVN, git, etc.) is recommended as this will allow for reverting changes.
To make the sharing of a Bib(La)TeX database easier, it is recommended to set specific database properties. In the menu File -> database properties:
Select UTF-8
as encoding.
Define a General file directory
, which will be used to store shared PDF (and other) files.
Define a sort order (year
, author
, title
is recommended).
Check Refuse to save the database before external changes have been reviewed
.
Check Enable save actions
, and defines these actions, to help enforcing a consistent format for the entries.
JabRef can be configured in various ways.
JabRef supports the MS Office Bibliography XML format for exporting and importing.
As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.
Export (selected) entries in JabRef and choose Office 2007 xml format
Open Word, click on the References Tab
Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)
All entries are then available in the MS bibliography database
The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.
More discussion at https://tex.stackexchange.com/a/351452/9075.
See https://stackoverflow.com/a/4628718/873282
Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.
The field mapping for import and export is mostly the same, but there are some differences, as not all field exists in both formats. Additionally, some fields have to be treated differently during import/export.
The following fields are BibTeX/BibLaTex only fields, they have no representation in office XML. In the resulting XML file they are represented with the prefix BIBTEX_
The XML field SourceType
contains the associated entry type from the first table, while the original BibTeX/BibLaTex entrytype is preserved in the field BIBTEX_ENTRY
.
The following fields are XML-only fields, they have no BibTeX/BibLaTex representation: In the resulting bib database they are represented with the prefix msbib-
.
The following fields are treated as follows during export:
The following fields are treated as follows during import:
This feature offers an interface for inserting citations and formatting a Bibliography in an OpenOffice or LibreOffice Writer document from JabRef.
Throughout this help document, whenever the name OpenOffice is used, it can be interchanged with LibreOffice.
To communicate with OpenOffice, JabRef must first connect to a running OpenOffice instance. You need to start OpenOffice and enter your document before connecting from JabRef. JabRef needs to know the location of your OpenOffice executable (soffice.exe on Windows, and soffice on other platforms), and the directory where several OpenOffice jar files reside. If you connect by clicking the Connect button, JabRef will try to automatically determine these locations. If this does not work, you need to connect using the Manual connect button, which will open a window asking you for the needed locations.
After the connection has been established, you can insert citations by selecting one or more entries in JabRef and using the Push to OpenOffice button in the dropdown menu of JabRef's toolbar, or by using the appropriate button in the OpenOffice panel in the side pane. This will insert citations for the selected entries at the current cursor position in the OpenOffice document, and update the bibliography to contain the full reference.
Note: JabRef does not use OpenOffice's built-in bibliography system, because of the limitations of that system. A document containing citations inserted from JabRef will not generally be compatible with other reference managers such as Bibus and Zotero.
Two different types of citations can be inserted - either a citation in parenthesis, "(Author 2007)", or an in-text citation, "Author (2007)". This distinction is only meaningful if author-year citations are used instead of numbered citations, but the distinction will be preserved if you switch between the two styles.
If you modify entries in JabRef after inserting their citations into OpenOffice, you will need to synchronize the bibliography. The Sync OO bibliography button will update all entries of the bibliography, provided their BibTeX keys have not been altered (JabRef encodes the BibTeX key into the reference name for each citation to keep track of which BibTeX key the original JabRef entry has).
To customize the citation style you need to select a style file, or use one of the default styles. The style defines the format of citations and the format of the bibliography. You can use standard JabRef export formatters to process entry fields before they are sent to OpenOffice. Through the style file, the intention is to give as much flexibility in citation styles as possible. You can switch style files at any time, and use the Update button to refresh your bibliography to follow the new style.
By clicking the Select style button you can bring up a window that allows selection of either the default style or an external style file. If you want to create a new style based on the default, you can click the View button to bring up the default style contents, which can be copied into a text editor and modified.
To choose an external style file, you have two options. Either you can choose a style file directly, or you can set a style file directory. If you do the latter, you will see a list of styles from that directory (and subdirectories), and can choose one from that list.
CAUTION: Please take care that your style file is saved using UTF-8 for character encoding. If you use another character encoding (even other unicode encodings such as UTF-16 or UTF-32), JabRef will not be able to process your style file.
Here is an example style file:
(Note that the layout for each entry type must be constrained to a single line in the style file - above, the lines are broken up to improve readability.)
The PROPERTIES section describes global properties for the bibliography. The following table describes the available properties:
The CITATION section describes the format of the citation markers inserted into the text.
The following table gives a brief description of all the available citation properties. Properties that are not given in the style file will keep their default value.
If numbered entries are used, the BracketBefore
and BracketAfter
properties are the most important - they define which characters the citation number is wrapped in. The citation is composed as follows: [BracketBefore][Number][BracketAfter]
where [Number] is the number of the citation, determined according to the ordering of the bibliography and/or the position of the citation in the text. If a citation refers to several entries, these will be separated by the string given in the property CitationSeparator
(for instance, if CitationSeparator
=;, the citation could look like [2;4;6]
). If two or more of the entries have a series of consecutive numbers, the numbers can be grouped (for instance [2-4]
for 2, 3 and 4 or [2;5-7]
for 2, 5, 6 and 7). The property GroupedNumbersSeparator
(default -
) determines which string separates the first and last of the grouped numbers. The integer property MinimumGroupingCount
(default 3) determines what number of consecutive numbers is required before entries are grouped. If MinimumGroupingCount
=3, the numbers 2 and 3 will not be grouped, while 2, 3, 4 will be. If MinimumGroupingCount
=0, no grouping will be done regardless of the number of consecutive numbers.
If numbered entries are not used, author-year citations will be created based on the citation properties. A parenthesis citation is composed as follows: [BracketBefore][Author][YearSeparator][Year][BracketAfter]
where [Author] is the result of looking up the field or fields given in the AuthorField
property, and formatting a list of authors. The list can contain up to MaxAuthors
names - if more are present, the list will be composed as the first author plus the text specified in the property EtAlString
. If the property MaxAuthorsFirst
is given, it overrides MaxAuthors
the first time each citation appears in the text.
If several, slash-separated, fields are given in the AuthorField
property, they will be looked up successively if the first field is empty for the given BibTeX entry. In the example above, the "author" field will be used, but if empty, the "editor" field will be used as a backup.
The names in the author list will be separated by the text given by the AuthorSeparator
property, except for the last two names, which will be separated by the text given by AuthorLastSeparator
. If the property AuthorLastSeparatorInText
is given, it overrides the former for citations of the in-text type. This makes it possible to get citations like (Olsen & Jensen, 2008)
and Olsen and Jensen (2008)
for the same style.
[Year] is the result of looking up the field or fields given in the [YearField] property.
An in-text citation is composed as follows: [Author][InTextYearSeparator][BracketBefore][Year][BracketAfter]
where [Author] and [Year] are resolved in exactly the same way as for the parenthesis citations.
If two different cited sources have the same authors and publication year, and author-year citations are used, their markers will need modification in order to be distinguishable. This is done automatically by appending a letter after the year for each of the publications; 'a' for the first cited reference, 'b' for the next, and so on. For instance, if the author "Olsen" has two cited papers from 2005, the citation markers will be modified to (Olsen, 2005a)
and (Olsen, 2005b)
. In the bibliography layout, the placement of the "uniquefier" letter is indicated explicitly by inserting the virtual field uniq
.
If several entries that have been "uniquefied" are cited together, they will be grouped in the citation marker. For instance, of the two entries in the example above are cited together, the citation marker will be (Olsen, 2005a, b)
rather than Olsen, 2005a; Olsen, 2005b)
. The grouped uniquefier letters (a and b in our example) will be separated by the string specified by the UniquefierSeparator
property.
Author-year citations referring more than one entry will by default be sorted chronologically. If you wish them to be sorted alphabetically, the citation property MultiCiteChronological
should be set to false.
.
The LAYOUT section describes how the bibliography entry for each entry type in JabRef should appear. Each line should start with either the name of a BibTeX entry type, or the word default
, followed by a '='. The default
layout will be used for all entry types for which an explicit layout hasn't been given.
The remainder of each line defines the layout, with normal text and spaces appearing literally in the bibliography entry. Information from the BibTeX entry is inserted by adding \field
markers with the appropriate field name (e.g. \author
for inserting the author names). Formatting information for the field can be included here, following JabRef's standard export layout syntax. Refer to JabRef's documentation on custom export filters for more information about which formatters are available and tooling hints.
If author-year citations are used, you have to explicitly specify the position of the "uniquefier" letter that is added to distinguish similar-looking citations. This is done by including a marker for the virtual field uniq
, typically right after the year (as shown in the example style file). The uniq
field is automatically set correctly for each entry before its reference text is laid out.
To indicate formatting in the bibliography, you can use the HTML-like tag pairs <b> </b>, <i> </i>, <sup> </sup> and <sub> </sub> to specify bold text, italic text, superscript and subscript, respectively.
If you are using numbered citations, the number for each entry will be automatically inserted at the start of each entry in the reference list. By default, the numbers will be enclosed in the same brackets defined for citations. The optional citation properties BracketBeforeInList
and BracketAfterInList
override BracketBefore
and BracketAfter
if set. These can be used if you want different types of brackets (or no brackets) in the reference list. Note that these need not be brackets as such - they can be any combination of characters.
Make sure to save your Writer document in OpenDocument format (odt). Saving to Word format will lose your reference marks.
There is currently no support for footnote based citations.
The cursor may be poorly positioned after inserting a citation.
Copy-pasting the example style file directly from this page can give an unparseable file. To avoid this, instead download the example file from the link in the download section.
Make sure that libreoffice-java-common
is installed on Linux for LibreOffice 5, otherwise important libraries are missing.
Open Office 4 will only work running under a 32-bit Java JRE/JDK on Windows because there is no 64-bit version of OpenOffice yet.
Entries can be created from a reference text.
In case you have a reference string, JabRef offers the functionality to convert the text to BibTeX. Thereby, JabRef uses the technology offered by Grobid.
Example:
Click Library and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.
The "Plain Reference Parser" window opens
Paste the reference text:
Click "Add to current library"
The result is selected in the entry table:
JabRef thereby used the service offered by FreeCite. This servce was shut down in 2019. The following explanations are only for historical interest.
Click BibTeX and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.
Select an entry type. Select "InProceedings", this works in the most cases
The "Plain text import" window opens
Paste the entry using the middle button "paste"
Click on "Parse with FreeCite"
The entry editor opens with the parsed result:
Do your corrections there.
After step 4 from above, you can manually assign the types to each text.
Select the text
Double click on the type at the right side at "Available BibTeX fields"
After you finished, you can press "Accept".
This tool allows you to search for citations in LaTeX files.
In the user interface, a tab was added to the entry editor, the aesthetics have been improved, and the tool was renamed to Search for Citations in LaTeX files.
A new tab was added to the entry editor. It allows to search for citations to the active entry in the LaTeX file directory. It can be configured in the Library properties dialog.
See the image below to see how it works:
A LaTeX Citations tab has been added to the entry editor.
This tab can be disabled in the Entry editor preferences.
A progress indicator appears while parsing.
Current search is cancelled if another entry is selected.
Parsed files are stored when the tool is run for the first time (to achieve better performance).
The current search path is shown at the bottom, next to a button to set the LaTeX file directory.
A user-friendly error logging and handling has also been implemented.
The citations list view is the same for dialog tool and tab.
The context of citations is shown instead of the whole line of text (which is shown as a tooltip).
Absolute file path has been changed into a relative one, from the search path.
New icons and styles for context, file path, and position (line and column) of a citation.
Since: 3.6
JabRef is able to support collaborative work using a shared SQL database. This feature is available since JabRef 3.6.
To use this feature you have to connect to a remote database. To do so you have to open File in the menu bar and then click the Connect to shared database item. The Connect to shared database dialog will open and you will have to fill in the shared's database connection settings. Under the field Database type you can choose between PostgreSQL (at least version 9.1), MySQL (at least 5.5, not recommended, because there is no live synchronization), and Oracle depending on your shared database. Then, you have to fill out the remaining fields with the according information. If you like you can save your password by clicking the Remember password? checkbox.
Since version 5.0 JabRef supports secure SSL connection to the database. For PostgreSQL make sure the server supports SSL and you have correctly setup the certificates. Then convert the client certificates into a java readable format and import them into a (custom) keystore. For MySQL the procedure is similar. Setting up MySQL with SSL and converting the certificates for the java keystore. However, it has only been tested with PostgreSQL. Once the certificates are imported into the keystore, specify the path to the keystore file in the connection dialog and the password for accessing the keystore.
After connecting to your shared database, your main window should look like this:
JabRef will automatically detect your changes and push them to the shared side. JabRef will also constantly check if there is a newer version available. If you experience connection issues, you can pull changes from your shared database via the icon in the icon bar. If a newer version is available, JabRef will try to automatically merge the new version and your local copy. If this fails, the Update refused dialog will show up. You will then have to manually merge using the Update refused dialog. The dialog helps you by pointing out the differences, you then will have to choose if you want to keep your local version or update to the shared version. Confirm your merge by clicking on Merge entries.
The Update refused dialog can also take a different form, if the BibEntry you currently work on has been deleted on the shared side. You can choose to keep the BibEntry in the database by clicking Keep or update to the shared side and click Close.
If you experience a problem with your connection to your shared database, the Connection lost dialog will show up. You can choose to Reconnect, Work offline or Close database. Most of the time simply reconnecting will fix this problem, if that's not the case you will have to choose between Work offline or Close database. Pick Work offline if you want to make sure your changes are saved. If you think there is nothing to save just pick Close database. If you choose to work offline, JabRef will convert the shared database to a local .bib database. Since you are no longer working online, but instead on a local database, you will have to import your work via copy and paste into the shared database. However before you import it into the shared database, make sure to check if changes happened during your offline time. Otherwise you might override someone else's work.
You can test the shared SQL database support by using https://www.freemysqlhosting.net for MySQL (not recommended) and https://www.elephantsql.com/ for PostgreSQL (recommended).
XMP is a standard created by Adobe Systems for storing metadata (data about data) in files. An well known example for metadata are MP3 tags, which can be used to describe artist, album and song name of a MP3 file. Adding metadata to MP3 helps other people to identify the songs correctly independent of file-name and can provide means for software (MP3 players for instance) to sort and group songs.
With XMP-support the JabRef team tries to bring the advantages of metadata to the world of reference managers. You can now choose to "Write XMP" metadata in the General Tab of JabRef, which will put all the BibTeX information into the PDF. If you then email this PDF to a colleague she can just drag the file into JabRef and all information that you entered will be available to her.
To use the XMP-feature in JabRef you can do the following:
To import a single annotated PDF-file that contains XMP you can select "File → Import into... → XMP-annotated PDF" or drag the file into the main view.
To write the bibliographic information to the associated PDF do the following: Double click the entry in the main view, go to the "General" tab and click on "Write XMP".
If you want to annotate all the PDFs in a given database you can select "Tools → Write XMP for database"
To verify if it worked you can open the PDF in Adobe Acrobat and select "File → Document Properties → Additional Metadata → Advanced". In the tree to the right you should see an entry called "". This works only with Adobe Acrobat, not with Adobe Reader.
If you don't have Adobe Acrobat, you can use pdfinfo
instead in order to see the XMP metadata. pdfinfo
is part of and .
XMP uses a subset of the Resource Description Framework (RDF) to store data. For JabRef a new metadata format is used which maps very closely to BibTeX. Basically all fields and values are turned into nodes of an XML document. Only authors and editors are stored as rdf:Seq-structures, so users of the data can skip the splitting on 'and's. All strings and crossrefs will be resolved in the data.
The following easy minimal schema is used:
The BibTeX-key is stored as bibtexkey
.
The type of the BibTeX-entry is stored as entrytype
.
author
and editor
are encoding as rdf:Seq
s where the individual authors are represented as rdf:li
s.
All other fields are saved using their field-name as is.
The following is an example of the mapping
will be transformed into
Beware of the following caveats if you trying to parse BibTeXMP:
In RDF attribute-value pairs can also be expressed as nodes and vice versa.
Some links about XMP and annotating PDFs
This situation occurs when you try to open an SQL database which was created with JabRef version older than 3.6.
With release of the SQL database structure has changed. So all SQL databases with an pre-3.6 structure are no longer supported.
To migrate your pre-3.6 SQL database into new shared SQL database you have to follow these steps:
Open JabRef and goto File -> Import from external SQL database
Enter required data and click on Connect
Choose the database which should be imported and press Import
Save the database locally (File -> Save database)
Goto: File -> Open shared database
Enter required data and click on Connect
Now goto File -> Import into current database
Choose the file you saved locally and import it
To customize entry types, select the menu Options → Customize entry types.
When customizing an entry type, you both define how its entry editor should look, and what it takes for JabRef to consider an entry complete. You can both make changes to the existing entry types, and define new ones.
Note that no modifications you make in this dialog will be stored until you click Apply. If you click Cancel or simply close the dialog, unapplied changes will be lost.
The entry customization dialog is divided into two areas. On the left side all entry types (including any custom types) are listed. If you select a type from the left side, the right area shows all fields for the selected entry.
The currently available entry types are listed in the left panel.
To add a new entry type, you must enter a name for it in the text field below the type list, and click Add. The new entry type will be added to the list, and selected for modification.
To remove a custom entry type, select it and click the trash icon. This operation will only be available for custom entry types that are not merely modifications of standard types. It is not possible to remove a standard entry type. While it's possible to remove them in the dialog, they will be readded on reopening the dialog.
When an entry type is selected, the current required and optional fields are listed on the right. A radio button indicates and allows to change the field's type from required to optional and vice versa.
To add a new field, edit the text field below the list, or select a field name from the dropdown menu, then click Add. The chosen field name will be added at the end of the list.
To remove a field select it in the list and click the trash icon to remove it.
To change the order of the fields you can use drag and drop.
Certain entry types have an either-or condition in their required fields. For instance, a book entry is complete with either the author or the editor field, or both. To indicate such a condition in a custom entry type, you should add a field named as the set of alternative fields separated by slashes, for instance author/editor indicates the condition mentioned above for the book entry type.
JabRef allows you to push any entries in your main window to an external editor through the push-to-external application feature. You would need to first select the entries in your entry table that you would like to export before using the feature. Once you have done so, go to the tools submenu and click on the push-to-external application button to the left of the Generate BibTeX keys button. By default the external editor used to push exports is TeXStudio.
On MacOS:
On Windows:
JabRef also allows you to change the external editor application you would like to push your exports to. To do so, first go to Options → Preferences → External programs. Under the Push applications section click on the Application to push entries to field. This will cause a dropdown menu to appear, from which you are then able to select from a list of all the external editors you have configured.
Once you have made your selection and click Save, the push-to-external application button icon will change to match that of the selected external editor application.
When you click on the push-to-external application button, JabRef will export your selected entries to an open LaTeX file in the selected external editor application. As an example, here is what happens when you export one entry to TexStudio.
As long as you continue using the same external editor application, clicking on the push-to-external application button for subsequent exports will just add new citations or extend an existing citation with additional entries. Following from the example above, here is what happens when you export a second entry to TeXStudio on an existing citation, which is extended to include the new entry in your LaTeX document.
BibTeX/BibLaTeX entry type | XML entry type |
---|---|
BibTeX/BibLaTeX | XML field |
---|---|
BibTeX/BibLaTeX only fields | XML representation |
---|---|
BibTeX/BibLaTex represenation | XML field |
---|---|
BibTeX/BibLaTeX representation | XML field |
---|---|
BibTeX/BibLaTeX representation | XML field |
---|---|
Download and install
Turn back at least to
After that the content is available as a shared SQL database and you can work live on it. .
book
Book
inbook
BookSection
booklet
BookSection
incollection
BookSection
article
JournalArticle
inproceedings
ConferenceProceedings
conference
ConferenceProceedings
proceedings
ConferenceProceedings
collection
ConferenceProceedings
techreport
Report
manual
Report
mastersthesis
Report
phdthesis
Report
unpublished
Report
patent
Patent
misc
Misc
electronic
ElectronicSource
online
InternetSite
periodical
ArticleInAPeriodical
bibtexkey
Tag
title
Title
year
Year
note
Comments
volume
Volume
language
LCID
edition
Edition
publisher
Publisher
booktitle
BookTitle
chapter
ChapterNumber
issue
Issue
school
Department
institution
Institution
doi
DOI
url
url
shorttitle
ShortTitle
pages
Pages
authors
Authors
editors
Editors
translator
Translator
bookauthor
Bookauthor
volumes
NumberVolumes
series
BIBTEX_Series
abstract
BIBTEX_Abstract
keywords
BIBTEX_KeyWords
crossref
BIBTEX_CrossRef
howpublished
BIBTEX_HowPublished
affiliation
BIBTEX_Affiliation
contents
BIBTEX_Contents
copyright
BIBTEX_Copyright
price
BIBTEX_Price
size
BIBTEX_Size
intype
BIBTEX_InType
paper
BIBTEX_Paper
<BibTexEntryType>
BIBTEX_Entry
<BibTexEntryType>
SourceType
key (not BibTeX-Key)
BIBTEX_KEY
pubstate
BITEX_Pubstate
msbib-numberofvolume
NumberVolumes
msbib-periodical
PeriodicalTitle
msbib-day
Day
msbib-accessed
Accessed (YearAccessed, MonthAccessed, DayAccessed)
msbib-medium
Medium
msbib-recordingnumber
RecordingNumber
msbib-theater
Theater
msbib-distributor
Distributor
msbib-broadcaster
Broadcaster
msbib-station
Station
msbib-type
Type
msbib-court
Court
msbib-reporter
Reporter
msbib-casenumber
CaseNumber
msbib-abbreviatedcasenumber
AbbreviatedCaseNumber
msbib-productioncompany
ProductionCompany
msbib-producername
producerNames
msbib-composer
composers
msbib-conductor
conductors
msbib-performer
performers
msbib-writer
writers
msbib-director
directors
msbib-compiler
compilers
msbib-interviewer
interviewers
msbib-interviewee
interviewees
msbib-inventor
inventors
msbib-counsel
counsels
booktitle
ConferenceName
journal
JournalName
journaltitle
JournalName
month
Month
date
year, month, day (if date is in ISO 8601 form
issue
issue
isbn
StandardNumber
issn
StandardNumber
lccn
StandardNumber
mrnumer
StandardNumber
address (if field contains at least one comma)
City
address (if field does not contain a comma)
City, StateProvince, CountryRegion
location (if field contains at least one comma)
City
location (if field does not contain a comma)
City, StateProvince, CountryRegion
<EntryType is thesis>
ThesisType
<EntryType is patent> number
PatentNumber
number (entry is not patent)
Number
Authors/Editors (single author/editor is enclosed in curly braces)
Corporate
organization
ConferenceName
journaltitle
Journal
location
City, StateProvince, CountryRegion
Property
Type
Default value
Description
IsNumberEntries
boolean
false
Determines the type of citations to use. If true
, number citations will be used. If false
, author-year citations will be used.
IsSortByPosition
boolean
false
Determines how the bibliography is sorted. If true, the entries will be sorted according to the order in which they are cited. If false, the entries will be sorted alphabetically by authors.
ReferenceParagraphFormat
string
Default
Gives the name of the paragraph format to be used for the reference list. This format must be defined in your OpenOffice document.
ReferenceHeaderParagraphFormat
string
Heading 1
Gives the name of the paragraph format to be used for the headline of the reference list. This format must be defined in your OpenOffice document.
Title
string
Bibliography
The text to enter as the headline of the reference list.
Property
Type
Default value
Description
AuthorField
string
author/editor
BibTeX field containing author names. Can specify fallback field, e.g. author/editor
AuthorLastSeparator
string
&
Text inserted between the two last author names.
AuthorLastSeparatorInText
string
If specified, this property overrides AuthorLastSeparator
for in-text citations such as Smith & Jones (2001)
.
AuthorSeparator
string
,
Text inserted between author names except the last two.
BracketAfter
string
]
The closing bracket of citations.
BracketAfterInList
string
]
The closing bracket for citation numbering in the reference list.
BracketBefore
string
[
The opening bracket of citations.
BracketBeforeInList
string
[
The opening bracket for citation numbering in the reference list.
CitationCharacterFormat
string
Default
If FormatCitations
is set to true
, the character format with the name given by this property will be applied to citations. The character format must be defined in your OpenOffice document.
CitationSeparator
string
;
Text inserted between items when a citation contains multiple entries, e.g. [Smith 2001; Jones 2002]
EtAlString
string
et al.
Text inserted after author names when not all authors are listed, e.g. [Smith et al. 2001]
FormatCitations
boolean
false
Determines whether formatting should be applied to citations. If true, a character format will be applied to the citations. The property CitationCharacterFormat
controls which format should be applied, and the given format must be defined in your OpenOffice document. Any font settings and effects can be chosen within OpenOffice for your chosen character format.
GroupedNumbersSeparator
string
-
Text inserted between numbers when numbered citations are grouped, e.g. [4-6]
InTextYearSeparator
string
Single Space
Text inserted between author names and starting bracket before year in in-text citations.
ItalicEtAl
boolean
true
If true, the "et al." string in citation markers is italicized.
MaxAuthors
integer
3
The maximum number of authors to list in a citation that has appeared earlier in the document.
MaxAuthorsFirst
integer
3
The maximum number of authors to list in a citation when appearing for the first time.
MinimumGroupingCount
integer
3
The minimum number of consecutive entries a citation should contain before the numbers are grouped, e.g. [4-6]
vs. [4; 5; 6]
.
MultiCiteChronological
boolean
true
If true
, multiple entries in the same citation are sorted chronologically, otherwise they are sorted alphabetically.
PageInfoSeparator
string
;
For citations with extra information, e.g. page numbers, this string is inserted between the year (for author-year citations) or the citation number (for numbered citations) and the extra information. E.g. the text between 2001
and p. 301
in [Smith 2001; p. 301]
.
UniquefierSeparator
string
,
Text inserted between letters used to differentiate citations with similar authors and year. E.g. the text between a
and b
in [Smith 2001a, b]
.
YearField
string
year
The BibTeX field to get publication year from.
YearSeparator
string
Single Space
Text inserted between author names and year in parenthesis citations such as [Smith 2001]
.
This feature is available through Options → Manage external file types.
The entry preview is created using the same mechanism as used by the Custom export filter facility. When previewed, an entry is processed using one of the two alternative layouts (you can switch between the two layouts by pressing F9) to produce HTML code which is displayed by the preview panel. To modify the appearance and contents of the preview you need to edit the preview layouts using the syntax described in the help file on Custom export filters.
This feature is available through Options → Manage protected terms.
FAQs on JabRef
Strings can be edited by BibTeX → Edit strings or pressing a button in the toolbar.
Strings are the BibTeX equivalent to constants in a programming language. Each string is defined with a unique name and a content. Elsewhere in the database, the name can be used to represent the content.
For instance, if many entries are from a journal with an abbreviation that may be hard to remember, such as 'J. Theor. Biol.' (Journal of Theoretical Biology), a string named JTB could be defined to represent the journal's name. Instead of repeating the exact journal name in each entry, the characters '#JTB#' (without quotes) are put into the journal field of each, ensuring the journal name is written identically each time.
A string reference can appear anywhere in a field, always by enclosing the string's name in a pair of '#' characters. This syntax is specific for JabRef, and differs slightly from the BibTeX notation that is produced when you save your database. Strings can by default be used for all standard BibTeX fields, and in Preferences → General → File you can opt to enable strings for non-standard fields as well. In the latter case you can specify a set of fields that are excepted from string resolving, and here it is recommended to include the 'url' field and other fields that may need to contain the '#' character and that may be processed by BibTeX/LaTeX.
A string may in the same way be referred in the content of another string, provided the referred string is defined before the referring one.
While the order of strings in your BibTeX file is important in some cases, you do not have to worry about this when using JabRef. The strings will be displayed in alphabetical order in the string editor, and stored in the same order, except when a different ordering is required by BibTeX.
For a complete description of string syntax, see the dedicated help.
You can add an arbitrary number of tabs to the entry editor. These will be present for all entry types. To customize these tabs, go to Options → Set up general fields.
You specify one tab on each line. The line should start with the name of the tab, followed by a colon (:), and the fields it should contain, separated by semicolons (;).
For example:
will give one tab named "General" containing the fields url, keywords, doi and pdf, and another tab named "Abstract" containing the fields abstract and annote.
This feature is available through Options → Customize key bindings.
You can reset the key bindings to default by pressing the "Default" button. This is especially useful when upgrading from a JabRef version before 3.8.2.
A: You are not obliged to cite JabRef, but we would greatly appreciate it if you do.
A: Yes it is. JabRef is distributed under the MIT License, which allows the following usage.
A: You can try resetting the settings. Depending on your operating system, you may need to pass the command line arguments -d all -n
to JabRef.
(E.g. in Windows this means jabref-X.Y.exe -d all -n
, where X.Y
means the version number of JabRef. If this does not help, run regedit
and delete the folder HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\net\sf\jabref
. Be careful with regedit
, as you can easily corrupt the basic Windows configuration.)
A: Don't panic. No data should be damaged in your bib library. Since version 5.0 the columns in the main entry table are stored differently internally. You can reset the preferences by command line. See above.
A: We are collecting all publications we hear about at https://github.com/JabRef/jabref/wiki/JabRef-in-the-media.
A: Yes. In Options → Preferences → General set "Default Encoding" to UTF8 and select an alternative user interface language in "Language" if required.
A: In Options → Preferences → Advanced → “Remote operation” put a checkmark to “Listen for remote operation on port”. This option allows new instances of JabRef to detect the instance already running, and pass files to that instead of opening a new window. (Default option since JabRef 3.0).
A: In Library → New entry you can select the type of the identifier in the field "ID type" and enter the identifier in "ID". A click on "Generate" should create the correct entry. If this does not work, try a web search.
A: There are several reasons why JabRef cannot find your identifier online. (E.g. one reason could be that your DOI is not listed in the CrossRef database if you are using the CrossRef fetcher. Another reason could be that the search result for your DOI on DOI.org returns invalid BibTeX which is unable to be read by JabRef.) Try a web search instead.
A: To add this translator field to all entry types, you can use Options → Set up general fields and add a translator field under one of JabRef's general field tabs. To add this translator field to a specific entry type, edit the specific entry type(s) (Options → Customize entry types) and add a translator field under required fields or optional fields, as you like.
A: Open Options → Preferences. In the “File” panel, you will find an option called “Do not wrap the following fields when saving”. This option contains a semicolon-separated list of field names. Any field you add to this list will always be stored without introduction of line breaks.
A: Yes, you can use the parameter --importToOpen bibfile
of the command line.
A: You need to override the default file directory for this specific library. In File → Library properties you can override the Default file directory setting. There, you can either enter the path in General file directory (for it to be valid for all users of the file) or in User-specific file directory (for it to be valid for you only). If you simply enter “.” (a dot, without the quotes), the file directory will be the same as the .bib file directory. To place your files in a subdirectory called subdir, you can enter “./subdir” (without the quotes). Files will automatically be linked with relative paths if the files are placed in the default file directory or in a directory below it.
A: In File → Library properties you can choose a library specific directory in the field “General file directory”. If you want to set a directory only for you (so that other users should use the default directory), use the field “User-specific file directory”.
A: Use File → Export. As “Filter” choose “OpenOffice/LibreOffice CSV (*.csv)”.
A: Select the entries. Right click. Choose “Manage keywords”. There you can manage keywords appearing in all selected entries or in any selected entry. New keywords are added to all selected entries.
A: In Options → Manage external file types you can add arbitrary types.
A: JabRef offers a portable version of the application as a compressed file (.zip or .tar.gz) without an installer. Be sure to activate "Load and Save preferences from/to jabref.xml on start-up (memory stick mode)" in Options → Preferences → General.
A: Use curly braces to tell BibTeX to keep your author field as is: {European Commission}
. In BibLaTeX, you can use label = {EC}
to have EC05
as label for a publication of the European Commission in the year 2005.
A: Take a look at “Bibliographies and citations” at the UK List of TeX Frequently Asked Questions on the Web. For German readers, there is the dante e.V. FAQ.
A: Your JabRef library is already a file in Bib(La)TeX format. To export a specific subset of your library select the entries to be exported and then choose File → Export → Save Selected as plain BibTeX....
A: Upon compilation, LaTeX generates a file with the extension ".aux". This files contains the keys of the cited references (among other things). Using this AUX file, JabRef can extract the relevant entries. Choose the menu Tools → New sublibrary based on AUX file. Select the reference library (among the opened ones) and specify the AUX file.
A: In File → Library properties, you will find a section named "Save actions". After enabling this feature, you can choose which actions should be performed for each field upon saving. That should help you keep your library tidy.
A: Google scholar is blocking "automated" crawls which generate too much traffic in a short time. JabRef already uses a two-step approach (with the prefetched list before crawling the actual BibTeX data) to circumvent this. However, after too much crawls JabRef is being blocked. To solve this issue, see the section Traffic limitations in the Google Scholar help.
A: You have to start vim with the option --servername
(such as vim --servername MyVimServer
). If you get the Unknown option argument
message, it means your version of vim does not include the clientserver feature (you can check with vim --version
). In such a case, you have to install another version of vim
.
A: In JabRef 3.0 plugin support was removed, because the development team cannot keep up plugin support any more. Nevertheless, plugins can be integrated in JabRef. See issue #152 for the current status and discussion. Please contact the author of the respective plugin and ask him to port his plugin into JabRef's code.
A: JabRef does no longer support plugins (since version 3.0). Automatic file renaming is now part of the Quality → Cleanup entries feature. There you can rename attached files based on the BibTeX key. You can change the format (pattern) under Options → Preferences → Import, by altering the pattern under "Default PDF file link action".
A: Download the portable version (file JabRef-X.Y.portable_windows.zip
, JabRef-X.Y.portable_macos.tar.gz
, or JabRef-X.Y.portable_linux.tar.gz
) from https://builds.jabref.org/master/, uncompress it, and run the executable. We recomment a folder such as ~/home/JabRef
or c:\portable-apps\JabRef
to ensure that the portable version does not conflict with the latest release version installed from https://downloads.jabref.org.
In case you want to development version open when double clicking a .bib
file, install the development version and uncompress the portable version of the latest release to a folder.
A: Enter XYZ in the search field located at the upper left-hand corner of the preference window.
Some of the key patterns shown below were added at JabRef 5.0
The pattern used in the auto generation of BibTeX labels can be set for each of the standard entry types in Options → Preferences, tab BibTeX key generator. Additionally, if you right click the tab of a database, the menu BibTeX key patterns allows to set specific key patterns for this database.
The key pattern can contain any text you wish, in addition to field markers that indicate that a specific field of the entry should be inserted at that position of the key. A field marker generally consists of the field name enclosed in square braces, e.g. [volume]. If the field is undefined in an entry at the time of key generation, no text will be inserted by the field marker.
If you have not defined a key pattern for a certain entry type, the Default pattern will be used. You can change the default pattern - its setting is above the list of entry types in the BibTeX key generator section of the Preferences dialog.
The default key pattern is [auth][year], and this could produce keys like e.g. Yared1998
If the key is not unique in the current database, it is made unique by adding one of the letters a-z until a unique key is found. Thus, the labels might look like:
Yared1998
Yared1998a
Yared1998b
Several special field markers are offered, which extract only a specific part of a field. Feel free to suggest new special field markers.
[auth
]: The last name of the first author
[authors
]: The last name of all authors
[authorLast
]: The last name of the last author
[authorsN
]: The last name of up to N authors. If there are more authors, “EtAl” is appended.
[authorsAlpha
]: Corresponds to the BibTeX style “alpha”. One author: First three letters of the last name. Two to four authors: First letters of last names concatenated. More than four authors: First letters of last names of first three authors concatenated. “+” at the end.
[authIniN
]: The beginning of each author's last name, using no more than N characters.
[authorIni
]: The first 5 characters of the first author's last name, and the last name initials of the remaining authors.
[authN
]: The first N characters of the first author's last name
[authN_M
]: The first N characters of the Mth author's last name
[auth.auth.ea
]: The last name of the first two authors, and “.ea” if there are more than two.
[auth.etal
]: The last name of the first author, and the last name of the second author if there are two authors or “.etal” if there are more than two.
[authEtAl
]: The last name of the first author, and the last name of the second author if there are two authors or “EtAl” if there are more than two. This is similar to auth.etal
. The difference is that the authors are not separated by “.” and in case of more than 2 authors “EtAl” instead of “.etal” is appended.
[authshort
]: The last name if one author is given; the first character of up to three authors' last names if more than one author is given. A plus character is added, if there are more than three authors.
[authForeIni
]: The forename initial of the first author.
[authorLastForeIni
]: The forename initial of the last author.
Note: If there is no author (as in the case of an edited book), then all of the above [auth...]
markers will use the editor(s) (if any) as a fallback. Thus, the editor(s) of a book with no author will be treated as the author(s) for label-generation purposes. If you do not want this behaviour, i.e. you require a marker which expands to nothing if there is no author, use pureauth
instead of auth
in the above codes. For example, [pureauth]
, or [pureauthors3]
.
[edtr
]: The last name of the first editor
[edtrIniN
]: The beginning of each editor's last name, using no more than N characters
[editors
]: The last name of all editors
[editorLast
]: The last name of the last editor
[editorIni
]: The first 5 characters of the first editor's last name, and the last name initials of the remaining editors.
[edtrN
]: The first N characters of the first editor's last name
[edtrN_M
]: The first N characters of the Mth editor's last name
[edtr.edtr.ea
]: The last name of the first two editors, and “.ea” if there are more than two.
[edtrshort
]: The last name if one editor is given; the first character of up to three editors' last names if more than one editor is given. A plus character is added, if there are more than three editors.
[edtrForeIni
]: The forename initial of the first editor.
[editorLastForeIni
]: The forename initial of the last editor.
[shorttitle
]: The first 3 words of the title, ignoring any function words (see below). For example, An awesome paper on JabRef
becomes AwesomePaperJabref
.
[veryshorttitle
]: The first word of the title, ignoring any function words (see below). For example, An awesome paper on JabRef
becomes Awesome
.
[camel
]: Capitalize and concatenate all the words of the title. For example, An awesome paper on JabRef
becomes AnAwesomePaperOnJabref
.
[title
]: Capitalize all the significant words of the title, and concatenate them. For example, An awesome paper on JabRef
becomes AnAwesomePaperonJabref
.
JabRef considers the following words to be function words: "a", "an", "the", "above", "about", "across", "against", "along", "among", "around", "at", "before", "behind", "below", "beneath", "beside", "between", "beyond", "by", "down", "during", "except", "for", "from", "in", "inside", "into", "like", "near", "of", "off", "on", "onto", "since", "to", "toward", "through", "under", "until", "up", "upon", "with", "within", "without", "and", "but", "for", "nor", "or", "so", "yet".
[firstpage
]: The number of the first page of the publication (Caution: this will return the lowest number found in the pages field, since BibTeX allows 7,41,73--97
or 43+
.)
[pageprefix
]: The non-digit prefix of pages (like "L" for L7) or "" if no non-digit prefix exists (like "" for 7,41,73--97
) .
[keywordN
]: Keyword number N from the “keywords” field, assuming keywords are separated by commas or semicolons.
[lastpage
]: The number of the last page of the publication (See the remark on firstpage
)
[shortyear
]: The last 2 digits of the publication year
A field name (or one of the above pseudo-field names) may optionally be followed by one or more modifiers.
The modifiers can be divided into the categories converters (such as for converting from HTML to LaTeX), case changers (such as for conversion to lower case), and others. Click here for a comprehensive list of available modifiers.
Generally, modifiers are applied in the order they are specified. In the following, we present a list of the most common modifiers alongside a short explanation:
:abbr: Abbreviates the text produced by the field name or special field marker. Only the first character and subsequent characters following white space will be included. For example:
[journal:abbr] would from the journal name “Journal of Fish Biology” produce “JoFB”.
[title:abbr] would from the title “An awesome paper on JabRef” produce “AAPoJ”.
[camel:abbr] would from the title “An awesome paper on JabRef” produce “AAPOJ”.
:lower: Forces the text inserted by the field marker to be in lowercase. For example, [auth:lower] expands the last name of the first author in lowercase.
:upper: Forces the text inserted by the field marker to be in uppercase. For example, [auth:upper] expands the last name of the first author in uppercase.
:capitalize: Changes the first character of each word to uppercase, all other characters are converted to lowercase. For example, an example title
will be converted to An Example Title
:titlecase: Changes the first character of all normal words to uppercase, all function words (see above) are converted to lowercase. Example: example title with An function Word
will be converted to Example Title with an Function Word
:sentencecase: Changes the first character of the first word to uppercase, all remaining words are converted to lowercase. Example: an Example Title
will be converted to An example title
:(x): The string between the parentheses will be inserted if the field marker preceding this modifier resolves to an empty value. The placeholder x
may be any string. For instance, the marker [volume:(unknown)] will return the entry's volume if set, and the string unknown if the entry's volume
field is not set.
After the key pattern has been applied to produce a key, you can choose to have the key generator search for occurrences of a specific regular expression, and replace it with a string. The regular expression and replacement string are entered in the text fields below the list of key patterns. If the replacement string is empty, matches of the regular expression will simply be removed from the generated key. For instance, \p{Punct}
or [:/%]
can be replaced by nothing to remove unwanted characters from the key. This may be useful when naming PDFs according to BibTeX keys.
To change the pattern to [authors]:[camel]
, execute the following steps:
Open the preferences
Navigate to "General"
Untick "Enforce legal characters in BibTeX keys". Note that this is only necessary if you wish to have colons be present in the generated key.
Navigate to "BibTeX key generator"
Change the default pattern to [authors]:[camel]
.
Press "OK"
Or, if you are using JabRef 5: 6. Press "enter" (forgetting to do this is a leading cause of puzzlement) 7. Click "Save"
The Medline (txt) format can be used by a simple text document. Here, you have to write the field names at the beginning of each line. The Medline (xml) format is a XML document. The field name has to be written between <
and >
. For further information visit https://www.nlm.nih.gov/bsd/licensee/elements_descriptions.html. Medline (txt) and Medline (XML) always take the type "article". RIS works similar to Medline (txt) with the difference that different fields are supported and the file extension is "ris".
In other sources, you might encounter "MedlinePlain" as synonym for "Medline (txt)" and "Medline" as synonym for "Medline (xml)".
Field | Medline (txt) | Medline (XML) | RIS |
---|---|---|---|
We are really happy that you are interested in contributing to JabRef. Please take your time to look around here. We especially invite you to look into our community members page where members introduce themselves.
Please use the "Edit on GitHub" link at the upper right corner. Then, follow GitHub's guide to edit files in other user's repository.
We encourage you to read about translating the JabRef user interface.
JabRef improves -- and Wikipedia pages should keep up!
Simply click on "Edit" (top right-hand tab).
Currently existing pages are:
Deutsch: https://de.wikipedia.org/wiki/JabRef
English: https://en.wikipedia.org/wiki/JabRef
Español: https://es.wikipedia.org/wiki/JabRef
Français: https://fr.wikipedia.org/wiki/JabRef
Italiano: https://it.wikipedia.org/wiki/JabRef
Русский: https://ru.wikipedia.org/wiki/JabRef
Portuguese: https://pt.wikipedia.org/wiki/JabRef
Svenska: https://sv.wikipedia.org/wiki/JabRef
Українська: https://uk.wikipedia.org/wiki/JabRef
If there is no page for you own language, you can easily create one.
Donations keeps us going! You can use Paypal, Flattr, or bank transfers. Your institution/company can contribute too, through bank transfer for example. All details are provided at https://donations.jabref.org.
Our team consists of volunteers. To provide better support, we are currently trying to get a funded developer on board. Please consider donating money!
Please head to https://devdocs.jabref.org/code-quality to learn about our current efforts to measure and improve code quality.
We collect small issues at https://github.com/JabRef/jabref/labels/good%20first%20issue. In case you do not find something suitable, you are invited to get in touch with us. Comment at the issue, check the the forum or join our chatting channel. For the brave, we also collect issues at https://github.com/koppor/jabref/labels/good%20first%20issue.
After finding something, please check our CONTRIBUTING.md for detailed information and further links.
Look at the discussions in our forum at https://discourse.jabref.org/c/features/6. Find an interesting topic, discuss it and start contributing.
You can talk to the core developers of JabRef in the gitter chat.
Here is a quick start guide of how to improve the help page.
Our help pages are hosted at with an integration to GitHub., which provides version control based on . In order to edit or create a JabRef help page you need a GitHub account. You can sign up for free.
If you already have an account, please make sure that you are signed in.
The easiest way to fix small errors or to add additional information is to edit a JabRef help page directly in your browser:
At the top of each help page you can find the GitHub icon. Just click here to show the source of the page.
This leads you to GitHub:
To actually edit the page click on the pencil icon which is highlighted above.
The window to edit the page at GitHub looks like this:
In order to check your changes hit the "Preview Changes" tab:
To save the changes you have to create a so called "Commit" by scrolling down and hitting the button "Propose File Change":
Please note: The message you provide here will be visible in the history of the help page, so please think a second to provide a meaningful description of your changes.
As a last step you have to submit the changes you have made back to us:
Just hit the button "Create Pull Request" and confirm the creation on the next page which is opened by hitting "Create Pull Request".
To edit more than one file at a time, to add screenshots, and for other more advanced changes we recommend to checkout this repository locally and to create a PR of your changes using the standard git and GitHub workflow.
Each database can have specific properties that can be modified through File → Database properties) or by right clicking on the tab of the database and choosing "Database properties". These specific properties override the generic properties defined in Options → Preferences.
The database-specific properties are stored in the database itself. This way, when moving the database to another computer, these properties are preserved. In most of cases these are stored in the bib-file database using text blocks starting with @Comment{jabref-meta: .
This setting determines which character encoding JabRef will use when writing this database to disk. Changing this setting will override the setting made in Preferences dialog for this database. JabRef specifies the encoding near the top of the bib file, in order to be able to use the correct encoding next time you open the file.
The dropdown menu allows to select one encoding. UTF-8
is highly recommended.
In your database, files (PDF, etc.) can be linked to an entry. The list of these files are stored in the file field of the entry. The location of these files has to be specified.
For your database, you can define a General file directory and a User-specific file directory. These settings override the main file directory defined in the Preferences dialog.
The General file directory is a common path for all the users of a shared database. The User-specific file directory allows each user to have its own file directory for the database. If defined, it overrides the General file directory.
JabRef stores the name of the current system alongside the User-specific file directory. This assumes that each user of the database has a different system name. For example, when using the computer laptop, the entry in the bib file is @Comment{jabref-meta: fileDirectory-jabref-laptop:\somedir;}
Relative directories can be specified. This means that the location of the files will be interpreted relative to the location of the bib file. Simply setting a directory to "." (without quotes) means that the files should reside in the same directory as the bib file.
Note: the legacy PDF/PS links (i.e. the pdf and ps fields, which were used in JabRef versions prior to 2.3), should in current versions be replaced by general file links. This can be done using Quality → Cleanup entries... and enabling Upgrade external PDF/PS links to use the 'file' field.
When saving the database, the order of the entries will be preserved if Save entries in their original order is selected. Alternatively, by selecting Save entries ordered as specified, you can choose to sort the entries using three criteria. For each criterion, you can type-in the field to be used and select the order.
While you edit a shared database, another user may be editing it too. By default, saving the database will overwrite changes done by others (although a warning message about the changes will be displayed).
To avoid discarding changes involuntarily, and hence to allow a smooth collaborative work, you can choose to Refuse to save the database before external changes have been reviewed. This setting lets you enforce reviewing of external changes before the database can be saved: users will only be able to save the database after any external changes have been reviewed and either merged or rejected.
Note: this is not a security feature, merely a way to prevent users from overwriting other users' changes inadvertently. This feature does not protect your database against malicious users.
Field formatting can be tidied up when saving the database. That ensures your entries to have consistent formatting. If you check Enable save actions, the list of actions can be configured.
Database encoding (always UTF-8)
Save sort order
Database protection
A: JabRef automatically recognizes a change in the bib
file on disk and notifies the user of it. This is cool for network drives.
If you use version control, a few advices are given for a smoother .
In addition, we have .
A: You can either choose to or to .
Sometimes, one has a BibTeX entry with abbreviated short names:
Now, one wants to have the full first names. In case, there is a DOI available, this is as simple as the following steps:
Determine the DOI: Switch to the "General" tab and click on "Look up DOI"
Fetch BibTeX data from the DOI: Click on "Get BibTeX data from DOI"
A popup appears. Select which data you want to merge into the eixting entry
Now the first names are expaned:
Yes, there is. See for details.
JabRef 5.x requires Java 13 (It is included in the native builds)
JabRef requires Java 8
Please follow the steps provided on our . JabRef 4.x does not run under Java 9 or newer. See
You might see the error message Error: Could not find or load main class org.jabref.JabRefMain
. This means, you do not have support activated in your Java runtime environment. This typically happens if you use , where one needs to setup separately.
You have several Java Virtual Machines installed, and under the command line the wrong one is chosen. Have a look at the previous question that tells you how to change the virtual machine used.
For Ubuntu you may also have a look at the .
JabRef comes with a set of translations into different languages, currently: Chinese (simplified), Danish, Dutch, English, Farsi, French, German, Indonesian, Italian, Japanese, Norwegian, Persian, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish and Vietnamese.
If the JabRef interface already exists in your language, you can help improve it. Otherwise, you can start translating JabRef into your own language.
For each language, there is the file JabRef_xx.properties
(xx
denotes the country code for the language). It contains all translations in a key/value format. In the JabRef source code tree, the property files reside in the directory.
We use the service of to keep our translations updated. It is a service directly running in the browser and one can quickly join and start translating. Please visit to get started.
Crowdin offers to quickly add a new language. Please contact us so that we add a new language.
Each entry is first given in English, then in the other language, with the two parts separated by an '=' character. For instance, a line can look like this in a German translation file:
Note that each space character is escaped (\
) to make it a valid property key. The translation value does not need any esacpes.
Some entries contain "variables" that are inserted at runtime by JabRef - this can for instance be a file name or a file type name:
A variable is denoted by %0
, %1
, %2
etc. In such entries, simply repeat the same notation in the translated version.
As we can see, there are several "special" characters: the percent sign and the equals sign, along with the colon character. If these characters are to be part of the actual text in an entry, they must be escaped in the English version, as with the colon in the following example:
The character encoding should be UTF-8. Please avoid Unicode escaping such as \u2302
.
Crowdin allows for downloading the current translation file:
Place the downloaded file in the path src/main/resources/l10n
. Then, execute gradlew run
in the root directory and JabRef should start.
For testing a crowdin-contributed translation without having to compile JabRef, one has to wait until the translation is incorporated into the current source code of JabRef.
For a new language to be available within JabRef, a corresponding line must be added in the Java class GUIGlobals (found in the directory /src/main/java/org/jabref/logic/l10n/Languages.java
in the JabRef source code tree). The line is inserted in the static {}
section where the map LANGUAGES
is populated. The code must of course be recompiled after this modification.
Most text can be simply added in this field as plain text. However, you can style your contribution by using . Markdown is a rather easy way to format text without the need for complex markup as for example in HTML.
You can find an introduction to markdown or .
That's it! We'll review your changes and publish them at .
The best way to enter tables is to use this for Markdown. It has the nice feature to generate markdown tables from different sources, e.g. you can directly copy the table from a spreadsheet or upload a csv files. Just copy and paste the generated markdown.
Note: Entries containing a crossref
field will always be placed prior to the other entries. This is a necessary preliminary for BibTeX to be able to determine the correct referenced values. (See: , p. 26)
For more information see .
Note that some properties are not available for shared as they are not handled like a .bib
file. The following properties are not available:
As far as we know, JabRef is not yet running on these free JVMs, due of our dependencies. However, JabRef is reported to run nicely on the runtime, which is based on the built with to fill in missing classes. Some issues have been encountered with the look and feel (see issues and ). Please let us know if newer versions give different results. If you have an idea or the expertise to make JabRef work under Classpath, let us know.
In the background, JabRef uses . Applications using JavaFX can be scaled via java -Dglass.gtk.uiScale=1.5 -jar <application>.jar
. If you have installed JabRef via a package manager, you probably don't have a .jar
file but a binary file. In this case, you need to find your JabRef.cfg
in your installation folder (possibly located at /opt/JabRef/lib/app/JabRef.cfg
) and add in the section [JavaOptions]
the line -Dglass.gtk.uiScale=1.5
. Then, restart JabRef. Try finding a value that is suitable for you. On high resolution displays, values around 1.5
seem to be reasonable.
To test your translation you must be able to compile the source tree after making your additions. This requires you to install the . Ensure that you use the most recent version.
Abstract
AB
Abstract / AbstractText
AB
Affiliation
AD
Article Date
ArticleDate
Article Identifier
AID
Article
Article Title
ArticleTitle
Author
AU
AuthorList
AU/A1
Author Identifier
AUID
Book Title
BTI
BT
Chemical List
ChemicalList
Citation Subset
CitationSubset
Collection Title
CTI
Collaborators
A3
Comments Corrections List
CommentsCorrectionsList
Corporate Author
CN
Copyright Information
CopyrightInformation
Create Date
CRDT
Country
Country
Data Bank List
DataBankList
Date Completed
DCOM
DateCompleted
Date Created
DA
DateCreated
Date Last Revised
LR
DateRevised
Date of Electronic Publication
DEP
Date of Publication
DP
Y2
Delete Citation
DeleteCitation
DOI
DOI
Edition
EN
Editor and Full Editor Name
FED
ED
End
ER
End Page
EP
Entrez Date
EDAT
Full Author
FAU
Full Personal Name as Subject
FPS
Gene Symbol
GS
General Note
GN
GeneralNote
Grant List
GrantList
Grant Number
GR
Investigator Name and Full Investigator Name
IR/FIR
Investigator List
InvestigatorList
ISO Abbreviation
ISOAbbreviation
ISBN
ISBN
SN
ISSN
IS
ISSN
ISSN Linking
ISSNLinking
Issue
IP
Issue
IS
Journal Issue
JournalIssue
Journal Title
JT
Journal
JO/JF/JA
Journal Title Abbreviation
TA
Keywords
KeywordList
KW
Language
LA
Language
Location Identifier
LID
Manuscript Identifier
MID
Medline Title Abbreviation
MedlineTA
Medline Date
MedlineDate
MeSH Date
MHDA
Mesh Heading List
MeshHeadingList
MeSH Terms
MH
Misc
M1-M3
NLM Unique ID
JID
NlmUniqueID
Note
N1
Number of References
RF
Other Abstract and other abstract language
OAB/OABL
OtherAbstract
Other Copyright Information
OCI
Other ID
OID
OtherID
Other Term
OT
Other Term Owner
OTO
Owner
OWN
Pagination
PG
Pagination
Personal Name as Subject
PS
Personal Name as Subject List
PersonalNameSubjectList
Place of Publication
PL
Publication History Status
PHST
Publication Status
PST
Publication Type
PT
Publication Type List
PublicationTypeList
Publisher
PB
Publishing Date
PubDate
Publishing Model
PUBM
PubMed Central Identifier
PMCR
PubmMed Unique Identifier
PMID
PMID
Registry Number
RN
Reprint
RP
Start Page
SP
Substance Name
NM
Supplemental Mesh List
SupplMeshList
Secondary Source ID
SI
Source
SO
Space Flight Mission
SFM
Status
STAT
Subset
SB
Title
TI
Title
TI/T1
Transliterated Title
TT
Type
TY
URL
UR
User Text
U1-U3
Volume
VI
Volume
VL
Volume Title
VTI
Vernacular Title
VernacularTitle
Year
PY/Y1