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.
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.
For linking attached files, see File links in JabRef.
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.
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 entry editor. 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 entry editor. If you do not see these fields, enable them at General Fields 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
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.
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.
How to find, sort, and clean entries
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.
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.
% Encoding: <encoding>
: States the encoding of a BibTeX file. E.g., % Encoding: UTF-8
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.
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})}
.
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.
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.
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 .
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.
To enable , JabRef adds % DBID: <id>
to the header. This helps JabRef identifying the SQL database where the file belongs. E.g., % DBID: 2mvhh73ge3hc5fosdsvuoa808t
.
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 .
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 storing constant strings using @String {key = value}
. JabRef supports managing them using BibTeX → Edit strings, which opens the . These values can be used in fields. For example, you can have:
See for a MWE for string constants.
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.
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 https://github.com/plk/biblatex/issues/475#issuecomment-246931180). 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 http://tex.stackexchange.com/a/148978/9075.
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 https://github.com/koppor/jabref/issues/14 for the developer's discussion on the fields.
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.
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.
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
.
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.
Import and export of bibliographic information using online bibliographic databases
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.
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.
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 Customizing entry types for more information about this.
For information about how the fields should be filled out, see BibTeX help.
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 Customizing general fields 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.
BibTeX supports string constants. One can define in the bibliography. JabRef offers editing of these strings via the String Editor.
For instance, if you see #jan#
in the month
field, the "real" BibTeX entry looks like month = jan
. For more details, see Strings.
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.
For more information on how JabRef generates BibTeX keys, see Customizing the BibTex key generator.
By selecting this Tab, we are sending the title of the selected paper to Mr. DLib.
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 Mr. DLibs help page. The following image shows the Related Articles Tab with recommendations to the selected item.
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:
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)
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.
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.
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.
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.
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.
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
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.
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.
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.
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?"
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 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.
.
The owner name is added in a field called 'owner', which by default is visible in the General fields tab in the .
is a computer science bibliography website listing more than 3.1 million journal articles, conference papers, and other publications on computer science ().
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 ().
The results are displayed in the . In case an error occurs, it is shown in a popup.
is a database covering more than 10000 open access journals covering all areas of science, technology, medicine, social science and humanities ().
The results are displayed in the . In case an error occurs, it is shown in a popup.
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 ().
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.
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: .
, 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.
The results are displayed in the . In case an error occurs, it is shown in a popup.
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 ()
The results are displayed in the . In case an error occurs, it is shown in a popup.
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.
Since: 3.7
MathSciNet 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 (Wikipedia).
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 import inspection window. In case an error occurs, it is shown in a popup.
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
Since: 3.7
SAO/NASA Astrophysics Data System 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 (Wikipedia).
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 import inspection window. 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 ADS-to-BibTeX.
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.
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.
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.
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.
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 ().
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 for full description.
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 .
(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 ().
The results are displayed in the . In case an error occurs, it is shown in a popup.
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.
Since: 4.1
The International Association for Cryptologic Research 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 https://eprint.iacr.org/search.html.
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.
Import and export of bibliographic information using identifiers (such as a DOI)
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.
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.
Since: 3.7
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 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
SAO/NASA Astrophysics Data System 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 (Wikipedia).
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.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.
This feature is available through Quality → Find unlinked files....
The following description appeared first on tex.stackexchange.com.
JabRef offers a BibTeX key generation and offers different patterns described at BibtexKeyPatterns.
Create or open a .bib file.
Choose a directory using the "Browse" button.
Click on "Scan directory".
To create entries for all files, click on "Apply".
Click on "OK" to start the import
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.
You can now save the file and are finished.
The importer based on the content has been written for IEEE and LNCS 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 Get BibTeX data from DOI functionality from JabRef to fetch the BibTeX data.
We are also thinking about replacing the code completely by using another library. This is much effort and there is no timeline for that.
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 used to have support for Mr.DLib, 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 the realted articles tab.
Go to "Quality" -> "Find unlinked files".
The "Find unlinked files" dialog opens.
In "Select files", the files not yet contained in the database are shown.
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".
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.
The entry editor with the last imported entry is shown
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
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}
.
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....
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 check the integrity of a database.
This feature is available through Quality → Check integrity....
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.".
JabRef can help you complement your entries from their 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.
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.
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.
Open the , 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.
See also: ,
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
).
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.
Import and export of bibliographic information
This feature is available through Search → Replace string....
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.
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.
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.
See also: Find duplicates
JabRef can look for duplicated entries inside a database.
This feature is accessible directly through Quality → Find duplicates. It is also used when importing new entries 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.
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.
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 avoid adding duplicated entries, and to perform some simple operations like generating BibTeX keys for the entries, or adding them to groups. 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
Potential duplicates are pointed out by an icon in the second column. A click on this icon allows you to check the similarities. A button on the left panel allows you to Deselect all duplicates (without inspection).
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.
Entries can be created from a reference text.
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:
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".
In case you have a reference string, JabRef offers the functionality to convert the text to BibTeX. Thereby, JabRef uses the technology offered by .
JabRef thereby used the service offered by . This servce was shut down in 2019. The following explanations are only for historical interest.