Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 102 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

v4

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...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

General information about JabRef

Finding, Sorting, and Cleaning Entries

How to find, sort, and clean entries

Searching externally using Online Services

Import and export of bibliographic information using online bibliographic databases

Searching externally using Publication Identifiers

Import and export of bibliographic information using identifiers (such as a DOI)

Check integrity

JabRef can check the integrity of a database.

This feature is available through Quality → Check integrity....

Import and Export

Import and export of bibliographic information

Import

New subdatabase based on AUX file

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.

Remote operation

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

The 'owner' field

JabRef can optionally mark all new entries added or imported to a database with your username.

You can disable or enable this feature by entering Preferences → General, and selecting/deselecting the line 'mark new entries with owner name'. You can also change the name used to mark your entries. The default name used is your user name. Finally, if an entry with a field owner is pasted or imported, the field is updated with your owner name if 'Overwrite' is checked.

The owner name is added in a field called 'owner', which by default is visible in the General fields tab in the .

Set/clear/rename fields

This feature is available through Edit → Set/clear/rename fields.

Field content selector

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.

arXiv

is a repository of scientific preprints in the fields of mathematics, physics, astronomy, computer science, quantitative biology, statistics, and quantitative finance ().

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 . In case an error occurs, it is shown in a popup.

CiteSeerX

is a public search engine for scientific and academic papers primarily with a focus on computer and information science. However, CiteSeerX has been expanding into other scholarly domains such as economics, physics and others ().

To fetch entries from CiteSeerX, choose Search → Web search, and the search interface will appear in the side pane. Select CiteSeerX in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

The results are displayed in the . In case an error occurs, it is shown in a popup.

DBLP

is a computer science bibliography website listing more than 3.1 million journal articles, conference papers, and other publications on computer science ().

To fetch entries from DBLP, choose Search → Web search, and the search interface will appear in the side pane. Select DBLP in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

The results are displayed in the . In case an error occurs, it is shown in a popup.

Springer

(aka Springer Science+Business Media) is a global publishing company that publishes books, e-books and peer-reviewed journals in science, technical and medical publishing. Springer also hosts a number of scientific databases, including SpringerLink, Springer Protocols, and SpringerImages ().

To fetch entries from Springer, choose Search → Web search, and the search interface will appear in the side pane. Select Springer in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

The results are displayed in the . In case an error occurs, it is shown in a popup.

zbMATH

is a reviewing service providing reviews and abstracts for articles in pure and applied mathematics ().

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 . In case an error occurs, it is shown in a popup.

Title of the paper

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, (provided by ) 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.

--importToOpen
, the imported entries will be added to the currently shown database. If no database is open, a new one will be created.

This information is outdated. Please help to improve it.

entry editor
CiteSeerX
Wikipedia
import inspection window
DBLP
Wikipedia
import inspection window
Springer
Wikipedia
import inspection window

Since: 3.7

zbMATH
Wikipedia
import inspection window
ArXiv
Wikipedia
import inspection window

Since: 3.8.1

http://dx.doi.org/
http://crossref.org/

MathSciNet

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.

SAO/NASA Astrophysics Data System

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.

DOAJ

DOAJ (Directory of Open Access Journals) is a database covering more than 10000 open access journals covering all areas of science, technology, medicine, social science and humanities (Wikipedia).

To fetch entries from DOAJ, choose Search → Web search, and the search interface will appear in the side pane. Select DOAJ in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.

It is possible to limit the search by adding a field name to the search, as field:text. The supported fields area:

  • title: The title of the article

  • doi: The DOI of the article

  • issn: The ISSN of the journal

  • publisher: The publisher of the journal

  • abstract: The abstract of the article

IEEEXplore

IEEEXplore is a scholarly research database that indexes, abstracts, and provides full-text for articles and papers on computer science, electrical engineering and electronics. IEEEXplore comprises over 180 journals, over 1,400 conference proceedings, more than 3,800 technical standards, over 1,800 eBooks and over 400 educational courses (Wikipedia)

To fetch entries from IEEEXplore, choose Search → Web search, and the search interface will appear in the side pane. Select IEEEXplore in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

By checking the Include abstracts checkbox, you may opt to download the abstracts along with the cite information for each entry. This will NOT cause more network queries.

The results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.

Notes

  • 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.

IACR eprint IDs

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.

Export

Synchronize file links

This feature is available through Quality → Synchronize file links....

Other integrations

Replace string

This feature is available through Search → Replace string....

Manage external file types

This feature is available through Options → Manage external file types.

Collaborative Work

Sharing libraries.

How Tos

Frequently Asked Questions and Howtos

FAQs on JabRef

Manage protected terms

This feature is available through Options → Manage protected terms.

Configuration of JabRef

JabRef can be configured in various ways.

Knowledge

Customize key bindings

This feature is available through Options → Customize key bindings.

You can reset the key bindings to default by pressing the "Default" button. This is especially useful when upgrading from a JabRef version before 3.8.2.

Customize general fields

You can add an arbitrary number of tabs to the entry editor. These will be present for all entry types. To customize these tabs, go to Options → Set up general fields.

You specify one tab on each line. The line should start with the name of the tab, followed by a colon (:), and the fields it should contain, separated by semicolons (;).

For example:

General:url;keywords;doi;pdf
Abstract:abstract;annote

will give one tab named "General" containing the fields url, keywords, doi and pdf, and another tab named "Abstract" containing the fields abstract and annote.

Screenshot of the Related Articles Tab

URL and DOI links in JabRef

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.

Setting up external viewers

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.

Opening external links

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.

Open DOI

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.

Special Fields

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.

ACM Portal

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 .

Best Practices

Helpful groups

  • 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 order

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 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 for more information.

Entry Editor

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's panels

The entry editor contains six panels: Required fields, Optional fields, General, Abstract, Comments and BibTeX source, where General, Abstract and Comments can be customized (see for details). Inside the three first panels, Tab and Shift + Tab are used to switch focus between the text fields.

Up to JabRef 4.1, the field was called "Review". The field name was changed to "Comments" as "Review" indicated some external reviews or some fundamental comments.

Switch panels by clicking on the tabs, or navigate to the panel to the left or right using the following key combinations: Ctrl + Tab or Ctrl + + switch to the tab to the right, and Ctrl + Shift + Tab or Ctrl + - switch to the tab to the left. You can also switch to the next or previous entry by pressing Ctrl + Shift + Down or Ctrl + Shift + Up, respectively, or by clicking the appropriate toolbar button.

The BibTeX source panel shows how the entry will appear when the database is saved in BibTeX format. If you wish, you can edit the BibTeX source directly in this panel. When you move to a different panel, press Ctrl + S or close the entry editor, JabRef will try to parse the contents of the source panel. If there are problems, you will be notified, and given the option to edit your entry further, or to revert to the former contents. If Show source by default is checked in the General options tab of the Preferences dialog, the source panel will be the one shown each time you open the entry editor. If you prefer editing the source rather than using the other four panels, you should check this option.

Tip: If your database contains fields unknown to JabRef, these will be visible in the source panel.

Tip: the pdf and url fields support Drag and Drop operations. You can drop there an url from your browser. either a link to a pdf file (that JabRef can download for you) or you can keep the link.

When the contents of a field is changed, JabRef checks if the new contents are acceptable. For field types that are used by BibTeX, the contents are checked with respect to the use of the '#' character. The hash symbol is only to be used in pairs (except in escaped form, '\#'), wrapping the name of a BibTeX string that is referenced. Note that JabRef does not check if the referenced string actually exists (this is not trivial, since the BibTeX style you use can define an arbitrary set of strings unknown to JabRef).

If the contents are not accepted, the field will turn red, indicating an error. In this case the change will not be stored.

BibTeX supports string constants. One can define in the bibliography. JabRef offers editing of these strings via the .

For instance, if you see #jan# in the month field, the "real" BibTeX entry looks like month = jan. For more details, see .

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 .

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 . The following image shows the Related Articles Tab with recommendations to the selected item.

Google Scholar

Description of Google Scholar

Google Scholar 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 (Wikipedia).

Usage

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.

Traffic limitations

Google scholar can block "automated" crawls which generate too much traffic in a short time. Normally, the results are displayed in the import inspection window. In case an error occurs, it is shown in a popup.

However, after too much crawls JabRef --- or more precisely: your IP address --- could be blocked. To unblock your IP, doing a Google scholar search in your browser might help. You will be asked to show that you are not a robot (a CAPTCHA challenge). If no CAPTCHA appears, or JabRef is still blocked after performing a search in the browser, you can also change your IP address manually or wait for some hours to get unblocked again.

Thus, the Google Scholar fetcher is not the best way to obtain lots of entries at the same time. If you are using Mozilla Firefox, the JabRef Plugin "JabFox" might be an alternative to download the BibTeX data directly from the browser. You can find the PlugIn here: .

DiVA

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.

Screenshot of new entry dialog

RFC document

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.

Screenshot of new entry dialog

Cleanup entries

JabRef can cleanup the entries of a database. To do a cleanup of the entries, go to Quality → Cleanup entries.

Screenshot for Cleanup Entries

In the lower part, you can choose "Run field formatter", where you can choose different Save Actions. 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.

Automatic Backup (.sav and .bak) and Autosave

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 service, you can generate an appropriate .gitignore file by opening .

In addition to .bak and to

Links to other entries

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

Time stamped fileds

JabRef can optionally set a field to contain the date an entry was added to the database.

You can disable or enable this feature by entering Options → Preferences → General, and selecting/deselecting the line 'Mark new entries with addition date'.

If an entry with a timestamp is pasted or imported, the field is updated with the current date if 'Overwrite' is checked. The value of the timestamp field will be updated upon changes in the entry if 'Update timestamp on modification' is checked.

By default, the date is added in a field called 'timestamp', which is visible in the General fields tab in the . You can alter the name of this field. The date format can also be customized (see below).

The timestamp field can be edited in the

Strings

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:

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:

JabRef Bibliography Management

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.

  • across many online scientific catalogues like , CrossRef, Google Scholar, IEEEXplore, INSPIRE-HEP, Medline PubMed, MathSciNet, Springer, arXiv, and zbMATH

Get BibTeX data from DOI

JabRef can help you complement your entries from their DOI.

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.

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:

GVK

, the GBV Union Catalogue, is a multimaterial bibliographic database of seven German federal states. It covers 41.5 million records of books, conference proceedings, periodicals, dissertations, microfilms and electronic resources.

To fetch entries from GVK, choose Search → Web search, and the search interface will appear in the side pane. Select GVK (Gemeinsamer Verbundkatalog) in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

The results are displayed in the . In case an error occurs, it is shown in a popup.

You can simply enter words / names / years you want to search for, or you can specify search keys. Supported keys are:

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 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:

INSPIRE-HEP

is an open access digital library for the field of high energy physics ().

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 . 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 .

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 ().

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.

Migration of pre-3.6 SQL databases into a shared SQL database

This situation occurs when you try to open an SQL database which was created with JabRef version older than 3.6.

With release of the SQL database structure has changed. So all SQL databases with an pre-3.6 structure are no longer supported.

To migrate your pre-3.6 SQL database into new shared SQL database you have to follow these steps:

  • Download and install

Pushing to external editor application

JabRef allows you to push any entries in your main window to an external editor through the push-to-external application feature. You would need to first select the entries in your entry table that you would like to export before using the feature. Once you have done so, go to the tools submenu and click on the push-to-external application button to the left of the Generate BibTeX keys button. By default the external editor used to push exports is TeXStudio.

On MacOS:

On Windows:

JabRef also allows you to change the external editor application you would like to push your exports to. To do so, first go to Options → Preferences → External programs. Under the Push applications section click on the Application to push entries to field. This will cause a dropdown menu to appear, from which you are then able to select from a list of all the external editors you have configured.

ISBN number

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, API is used to convert an ISBN to a BibTeX entry. If no entry is found, the fetcher tries 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.

Export to an External SQL Database

This help applies for older versions of JabRef. From JabRef 3.6 onwards, is supported

JabRef is capable of exporting the contents of the BibTeX database, along with groups information, to an external MySQL or PostgreSQL database.

You just need to be sure you have an user/password with full privileges on a MySQL or PostgreSQL server.

  1. Choose File → Export to external SQL database, or click the corresponding button on the toolbar.

Sharing a Bib(La)TeX Database

JabRef allows to share both Bib(La)TeX database and .

When sharing a Bib(La)TeX database, JabRef automatically recognizes a change in the bib file on disk and notifies the user of it. This works well on network drives.

Note: the use of a version control system (SVN, git, etc.) is recommended as this will allow for reverting changes.

To make the sharing of a Bib(La)TeX database easier, it is recommended to set specific database properties. In the menu File -> database properties:

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 ().

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.

Customize entry types

To customize entry types, select the menu Options → Customize entry types.

When customizing an entry type, you both define how its entry editor should look, and what it takes for JabRef to consider an entry complete. You can both make changes to the existing entry types, and define new ones.

Note that no modifications you make in this dialog will be stored until you click Apply. If you click Cancel or simply close the dialog, unapplied changes will be lost.

The entry customization dialog is divided into two areas. On the left side all entry types (including any custom types) are listed. If you select a type from the left side, the right area shows all fields for the selected entry.

The currently available entry types are listed in the left panel.

DOI -- Digital Object Identifier

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, (provided by ) 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.

Entry preview setup

The entry preview is created using the same mechanism as used by the facility. When previewed, an entry is processed using one of the two alternative layouts (you can switch between the two layouts by pressing F9) to produce HTML code which is displayed by the preview panel. To modify the appearance and contents of the preview you need to edit the preview layouts using the syntax described in the help file on .

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 . In case an error occurs, it is shown in a popup.

Types of Fields

Ranking

Relevance

Quality Assured

Priority

Storage in the BibTeX Entry

import inspection window

Use Integrity Check often

Enable save actions

Check Integrity
Save Actions
https://addons.mozilla.org/en-US/firefox/addon/jabfox/?src=external-jabrefSite
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

Query syntax

INSPIRE-HEP
Wikipedia
import inspection window
http://inspirehep.net/info/hep/search-tips

Select the database type from the drop down menu for Server Type.

  • Enter the database connection information, and click Connect.

  • JabRef will then connect to the specified database, create new tables, and populate those tables with entries and groups information. You will be able to export as many JabRef bib databases as you want without losing the previously explored data. The system recognize a database uniquely by its full path (directory structure + filename). In case you export the same JabRef database more than once, the data of that database will be update in the SQL database. Note that you will not be prompted for the connection information on subsequent exports. If you would like to export to a different database, you can change the connection information by choosing File → Connect to external SQL database (or by clicking the associated toolbar button), and then performing an export. Since version 2.8 tables are not dropped, and user is able to store more than one JabRef database into a single SQL database.

    When importing a database from an SQL database (File → Import from external SQL database), JabRef will place each database found in a different tab.

    Export

    collaborative working on a SQL database
    Select UTF-8 as encoding.
  • Define a General file directory, which will be used to store shared PDF (and other) files.

  • Define a sort order (year, author, title is recommended).

  • Check Refuse to save the database before external changes have been reviewed.

  • Check Enable save actions, and defines these actions, to help enforcing a consistent format for the entries.

  • SQL database
    Custom export filter
    Custom export filters
    Unpaywall
    import inspection window

    Sharing

    Q: How does JabRef support me in sharing my Bib(La)TeX libraries?

    A: JabRef automatically recognizes a change in the bib file on disk and notifies the user of it. This is cool for network drives.

    If you use version control, a few advices are given for a smoother sharing of a bib file.

    In addition, we have many open issues dealing with collaboration.

    Q: How to do collaborative work on a library?

    A: You can either choose to use an SQL database or to share a bib file.

    - 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:

    1. Navigate to BibTeX source

    2. Insert related = {bibtexkey},

    3. Close the entry editor

    4. Open the entry editor

    5. Navigate to "Other fields"

    6. 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.

    Since: 3.5

    Notes

    Unsupported fields:

    Further information

    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?"

    Advanced search

    GVK
    import inspection window

    Notes

    Sample queries

    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 @Strings. 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 @Strings of type author should be used for author and editors fields only. @Strings of type institution should be used for institution and organization fields only. @Strings of type publisher should be used only for publisher fields. And finally @Strings of type other can be used anywhere.

    It can also happen that you will have the same institution for more types:

    • @String { aMIT = "{Massachusetts Institute of Technology ({MIT})}" } if the institution will appear as author or editor

    • @String { iMIT = "{Massachusetts Institute of Technology ({MIT})}" } if the institution will appear as institution or organization

    • @String { pMIT = "{Massachusetts Institute of Technology ({MIT}) press}" } if the institution will appear as publisher.

    Even if the last example may appear contradicting the intention was to remove duplicity and unify the names of persons and institutions.

    See https://tex.stackexchange.com/questions/303467/bibliography-contents-journal-names-not-abbreviated-even-with-ieeeabrv/303489#303489 for a MWE for string constants.

    Rendering of constants in JabRef's entry editor

    String Editor

    JabRef's typed Strings

    Further reading

    @String { kopp = "Kopp, Oliver" }
    @String { kubovy = "Kubovy, Jan" }
    @String { et = " and " }
    @Misc{m1,
      author = kopp # et # kubovy,
    }
    @Misc{m2,
      author = kopp # " and " # kubovy,
    }
    @Misc{m3,
      month = may,
    }
    @Misc{m4,
      month = {may},
    }
    .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:

    Screenshot of the autosave 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:

    Screenshot of the backup 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.

    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.

    gitignore.io
    https://www.gitignore.io/api/jabref

    Automatic saving of the current library

    Automatic backup of current library edits

    Backup of last library version

    General fields
    tab of the
    . If you do not see these fields, enable them at
    or reset your preferences.

    You can manually alter the value by typing in the date and time of your choice. Also, by clicking on the calendar icon located at the right end of the field, you can select the date you want in a calendar.

    Screenshot of the 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

    Configuration

    Usage

    entry editor

    Formatting

    entry editor
    General Fields
    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

    • Native BibTeX and Biblatex support

    • 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.

    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.

    Features

    Collect

    Search
    CiteSeer

    Organize

    Cite

    Share

    The data format of JabRef is Bib(La)TeX

    JabRef's main window

    Adding a new entry

    Adding a new entry using an id

    Adding a new entry using the reference text

    Editing an entry

    Referencing a BibTeX string in a field

    Revision history

    License

    The license of the JabRef software

    The license of JabRef help

    • 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.

    Screenshot of the preview and source code for the merged 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.

    Screenshot of choosing to replace the original entry or not

    Finally, after selecting which fields to keep, you can decide to Replace the original entry. Alternatively, you can press Cancel.

    See also: Find duplicates, Merge entries

    Parallel display of the entry field and of the information gathered from the DOI

    entry editor
    Screenshot of general tab
    Screenshot of the parallel display

    Merged entry: preview and source code

    Final merging

    • 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.

    Screenshot of the buttons to choose which entry to keep

    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.

    Parallel display of potential duplicates

    importing new entries
    Screenshot of the parallel display

    Selecting which entry to keep

    Open JabRef and goto File -> Import from external SQL database

  • Enter required data and click on Connect

  • Choose the database which should be imported and press Import

  • Save the database locally (File -> Save database)

  • Turn back at least to JabRef 3.6

  • Goto: File -> Open shared database

  • Enter required data and click on Connect

  • Now goto File -> Import into current database

  • Choose the file you saved locally and import it

  • After that the content is available as a shared SQL database and you can work live on it. More information about the live editing.

    Context

    Migration

    JabRef 3.6
    JabRef 3.5
    Screenshot of migration popup
    Once you have made your selection and click Save, the push-to-external application button icon will change to match that of the selected external editor application.
    New Application After Select

    When you click on the push-to-external application button, JabRef will export your selected entries to an open LaTeX file in the selected external editor application. As an example, here is what happens when you export one entry to TexStudio.

    Initial Push to External Export

    As long as you continue using the same external editor application, clicking on the push-to-external application button for subsequent exports will just add new citations or extend an existing citation with additional entries. Following from the example above, here is what happens when you export a second entry to TeXStudio on an existing citation, which is extended to include the new entry in your LaTeX document.

    Subsequent Push to External Export
    Select External Application
    To add a new entry type, you must enter a name for it in the text field below the type list, and click Add. The new entry type will be added to the list, and selected for modification.

    To remove a custom entry type, select it and click the trash icon. This operation will only be available for custom entry types that are not merely modifications of standard types. It is not possible to remove a standard entry type. While it's possible to remove them in the dialog, they will be readded on reopening the dialog.

    When an entry type is selected, the current required and optional fields are listed on the right. A radio button indicates and allows to change the field's type from required to optional and vice versa.

    To add a new field, edit the text field below the list, or select a field name from the dropdown menu, then click Add. The chosen field name will be added at the end of the list.

    To remove a field select it in the list and click the trash icon to remove it.

    To change the order of the fields you can use drag and drop.

    Certain entry types have an either-or condition in their required fields. For instance, a book entry is complete with either the author or the editor field, or both. To indicate such a condition in a custom entry type, you should add a field named as the set of alternative fields separated by slashes, for instance author/editor indicates the condition mentioned above for the book entry type.

    Using the entry customization dialog

    Adding and removing entry types

    Screenshot of the entry customization dialog

    Editing entry types

    Either/or fields

    Field consistency checking

    Handling of string constants

    Word/name autocompletion

    Drag and drop behavior settings

    Copy BibTeX key including citation command.

    Copy BibTeX key

    Autogenerate BibTeX key

    Related Articles Tab

    Customizing general fields
    String Editor
    Strings
    Customizing the BibTex key generator
    Mr. DLibs help page
    Screenshot of the Related Articles Tab

    Since: 3.7

    Medline
    Wikipedia
    Screenshot of new entry dialog

    Since: 3.8

    eBook.de's
    OttoBib
    Screenshot of new entry dialog

    Since: 3.7

    SAO/NASA Astrophysics Data System
    Wikipedia
    Screenshot of new entry dialog

    Since: 3.7

    http://dx.doi.org/
    http://crossref.org/
    Screenshot of new entry dialog
    Open DOI via popup
    Preferences for URL column

    Journal abbreviations

    Since: 5.0

    JabRef can automatically toggle journal names between abbreviated and unabbreviated form, as long as the names are contained in one of your journal lists.

    This feature can be configured under Options → Manage journal abbreviations.

    JabRef includes a fairly extensive build-in list of journal abbreviations. This list is a merge of all lists available at abbrv.jabref.org. 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.

    General view

    Using the feature

    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.

    External lists can be found at . These data files are in CSV format (using semicolons as separators):

    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:

    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 .

    MEDLINE

    MEDLINE is a bibliographic database of life sciences and biomedical information. It includes bibliographic information for articles from academic journals covering medicine, nursing, pharmacy, dentistry, veterinary medicine, and health care. MEDLINE also covers much of the literature in biology and biochemistry, as well as fields such as molecular evolution (Wikipedia).

    To fetch entries from MEDLINE, choose Search → Web search, and the search interface will appear in the side pane. Select MEDLINE in the dropdown menu. To start a search, enter the words of your query, and press Enter or the Fetch button.

    There are two ways of specifying which entries to download:

    1. Enter one or more MEDLINE IDs (separated by comma/semicolon) in the text field.

    2. 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.

      Examples:

      • May \[au\] AND Anderson \[au\]

    In both cases, press Enter or the Fetch button. If you use a text search, you will be prompted with the number of entries found, and given a choice of how many to download.

    Then, the results are displayed in the . In case an error occurs, it is shown in a popup.

    If you need to use an HTTP proxy server, you can configure JabRef to use a proxy using the "Network" preferences (Options → Preferences → Network).

    JabRef is not intended to be a tool for mass download of citations. The purpose of the WebFetchers (such as the Medline Fetcher) is to simplify download of single, or at least few entries without using the browser. That means, one tries to import the bibliographic information of already known publications in a simple way.

    However, it is still possible to import hundreds or even thousands of entries from medline using the export functionality of the database itself. Perfom the search query you like, and then choose the "Send to" → "File" export (choose Medline or XML as format):

    The downloaded file can then be imported using JabRefs "File" → "Import into current/new database" feature. Note: depending on the number the import might require some - or quite a lot of time. It was tried in 2016 with an exported XML file of 130MB an over 11000 found entries, which required more than 10 minutes of import.

    Apart from fetching entries by using a full search it is also possible to directly create a BibTeX entry using the BibTeX → New Entry dialog. More details are described at .

    Merge entries

    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.

    Parallel display of the entries' fields

    Screenshot of the parallel display

    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:

    Import inspection window

    Import inspection window

    Purpose

    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.

    The inspection window

    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.

    Screenshot of the inspection window

    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

    Potential duplicates are pointed out by an icon in the second column. A click on this icon allows you to . A button on the left panel allows you to Deselect all duplicates (without inspection).

    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.

    EndNote Export Filter

    This information is outdated. Please help to improve it.

    Export from JabRef

    JabRef can export databases to EndNote-readable files. To use this feature, choose File → Export, choose the file type Endnote (txt) and then specify the name of the export file.

    Import to EndNote

    The default EndNote Import filter does not handle multiple authors or editors properly. There are two options to work around this:

    1. Use the built-in filter and fix the file later. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import. Click Import to start the import. After import, select Edit→ Change Text. Change Any Field to Author. Enter " and " into the search field (without quotes). enter a return character into the change field (Option + Enter on Mac OS X, Ctrl + Enter on Windows XP). Click Change. Repeat with the Secondary Author field.

    2. Install the EndNote Import from JabRef filter in the EndNote Extras. Follow the instructions in Advanced Use below. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import from JabRef (if it does not appear, select Other filters. If it still doesn't appear, it was not correctly installed.) Click Import to start the import.

    The EndNote Export filter maps BibTeX entrytypes to EndNote reference types as follows:

    By default, the export filter assumes that entries in the author or editor fields in brackets are corporate authors and replaces the brackets with a trailing comma. However, this means that entries that include LaTeX code in brackets will be assumed to be corporate authors and therefore will be improperly formatted.

    For better interoperability between EndNote and JabRef, download the EndNote filter set from the Resources page of JabRef's web page.

    Shared SQL Database

    Since: 3.6

    JabRef is able to support collaborative work using a shared SQL database. This feature is available since JabRef 3.6.

    Usage

    To use this feature you have to connect to a remote database. To do so you have to open File in the menu bar and then click the Connect to shared database item. The Connect to shared database dialog will open and you will have to fill in the shared's database connection settings. Under the field Database type you can choose between PostgreSQL (at least version 9.1), MySQL (at least 5.5, not recommended, because there is no live synchronization), and Oracle depending on your shared database. Then, you have to fill out the remaining fields with the according information. If you like you can save your password by clicking the Remember password? checkbox.

    SSL configuration

    Since version 5.0 JabRef supports secure SSL connection to the database. For PostgreSQL make sure the server supports SSL and you have correctly setup the certificates. Then convert the client certificates into a java readable format and import them into a (custom) keystore. For MySQL the procedure is similar. Setting up MySQL with SSL and converting the certificates for the java keystore. However, it has only been tested with PostgreSQL. Once the certificates are imported into the keystore, specify the path to the keystore file in the connection dialog and the password for accessing the keystore.

    After connecting to your shared database, your main window should look like this:

    JabRef will automatically detect your changes and push them to the shared side. JabRef will also constantly check if there is a newer version available. If you experience connection issues, you can pull changes from your shared database via the icon in the icon bar. If a newer version is available, JabRef will try to automatically merge the new version and your local copy. If this fails, the Update refused dialog will show up. You will then have to manually merge using the Update refused dialog. The dialog helps you by pointing out the differences, you then will have to choose if you want to keep your local version or update to the shared version. Confirm your merge by clicking on Merge entries.

    The Update refused dialog can also take a different form, if the BibEntry you currently work on has been deleted on the shared side. You can choose to keep the BibEntry in the database by clicking Keep or update to the shared side and click Close.

    If you experience a problem with your connection to your shared database, the Connection lost dialog will show up. You can choose to Reconnect, Work offline or Close database. Most of the time simply reconnecting will fix this problem, if that's not the case you will have to choose between Work offline or Close database. Pick Work offline if you want to make sure your changes are saved. If you think there is nothing to save just pick Close database. If you choose to work offline, JabRef will convert the shared database to a local .bib database. Since you are no longer working online, but instead on a local database, you will have to import your work via copy and paste into the shared database. However before you import it into the shared database, make sure to check if changes happened during your offline time. Otherwise you might override someone else's work.

    You can test the shared SQL database support by using for MySQL (not recommended) and for PostgreSQL (recommended).

    How to expand first names of a BibTeX entry

    Sometimes, one has a BibTeX entry with abbreviated short names:

    @Article{Eshuis_2015,
      author    = {R. Eshuis and A. Norta and O. Kopp and E. Pitkanen},
      journal   = {{IEEE} Transactions on Services Computing},
      title     = {Service Outsourcing with Process Views},
      year      = {2015},
      month     = {jan},
      number    = {1},
      pages     = {136--154},
      volume    = {8},
      publisher = {Institute of Electrical and Electronics Engineers ({IEEE})},
    }

    Now, one wants to have the full first names. In case, there is a DOI available, this is as simple as the following steps:

    1. Determine the DOI: Switch to the "General" tab and click on "Look up DOI"

    2. Fetch BibTeX data from the DOI: Click on "Get BibTeX data from DOI"

    3. A popup appears. Select which data you want to merge into the eixting entry

    4. Now the first names are expaned:

    The string editor

    Strings can be edited by BibTeX → Edit strings or pressing a button in the toolbar.

    Strings are the BibTeX equivalent to constants in a programming language. Each string is defined with a unique name and a content. Elsewhere in the database, the name can be used to represent the content.

    For instance, if many entries are from a journal with an abbreviation that may be hard to remember, such as 'J. Theor. Biol.' (Journal of Theoretical Biology), a string named JTB could be defined to represent the journal's name. Instead of repeating the exact journal name in each entry, the characters '#JTB#' (without quotes) are put into the journal field of each, ensuring the journal name is written identically each time.

    A string reference can appear anywhere in a field, always by enclosing the string's name in a pair of '#' characters. This syntax is specific for JabRef, and differs slightly from the BibTeX notation that is produced when you save your database. Strings can by default be used for all standard BibTeX fields, and in Preferences → General → File you can opt to enable strings for non-standard fields as well. In the latter case you can specify a set of fields that are excepted from string resolving, and here it is recommended to include the 'url' field and other fields that may need to contain the '#' character and that may be processed by BibTeX/LaTeX.

    A string may in the same way be referred in the content of another string, provided the referred string is defined before the referring one.

    While the order of strings in your BibTeX file is important in some cases, you do not have to worry about this when using JabRef. The strings will be displayed in alphabetical order in the string editor, and stored in the same order, except when a different ordering is required by BibTeX.

    For a complete description of string syntax, see the .

    LaTeX Citations Tab

    This tool allows you to search for citations in LaTeX files.

    In the user interface, a tab was added to the entry editor, the aesthetics have been improved, and the tool was renamed to Search for Citations in LaTeX files.

    LaTeX Citations tab

    Overview

    A new tab was added to the entry editor. It allows to search for citations to the active entry in the LaTeX file directory. It can be configured in the Library properties dialog.

    See the image below to see how it works:

    LaTeX Citations tab animation

    Key Features

    The new tab

    • A LaTeX Citations tab has been added to the entry editor.

    • This tab can be disabled in the Entry editor preferences.

    • A progress indicator appears while parsing.

    • Current search is cancelled if another entry is selected.

    • Parsed files are stored when the tool is run for the first time (to achieve better performance).

    • The current search path is shown at the bottom, next to a button to set the LaTeX file directory.

    • A user-friendly error logging and handling has also been implemented.

    • The citations list view is the same for dialog tool and tab.

    • The context of citations is shown instead of the whole line of text (which is shown as a tooltip).

    • Absolute file path has been changed into a relative one, from the search path.

    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.

  • dedicated help

    FAQs on Operating Systems

    Notes

    Corporate Authors

    Advanced Use: EndNote Extras

    BibTeX entrytype -> EndNote Reference Type
    ------------------------------------------
    misc, other -> Generic
    unpublished -> Manuscript
    manual -> Computer Program
    article -> Journal Article
    book -> Book
    booklet -> Personal Communication
    inbook,incollection -> Book Section
    inproceedings -> Conference Proceedings
    techreport -> Report
    mastersthesis, phdthesis -> Thesis
    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\]

  • Using a Proxy Server

    Mass downloading of articles

    OVID operators
    import inspection window
    Medline-to-BibTeX
    medline-export
    download the file corresponding to the entry
  • automatically set file links to the entry

  • attach an URL to the entry

  • Duplicated entries

    BibTeX key generation

    Importation into the database

    check the similarities
    New icons and styles for context, file path, and position (line and column) of a citation.

    A custom user interface controller for listing citations

    <full name>;<abbreviation>[;<shortest unique abbreviation>[;<frequency>]]
    Accounts of Chemical Research;Acc. Chem. Res.;ACHRE4;M

    Setting up additional journal lists

    Your personal journal abbreviations list

    External journal lists

    Contributing an external journal list

    JabRef's repository abbreviation lists
    GitHub
    our forum
    External list

    Merged entry: preview and source code

    Final merging

    Find duplicates
    Screenshot of the preview and source code for the merged entry
    Screenshot of choosing to merge or not

    Try it out

    https://www.freemysqlhosting.net
    https://www.elephantsql.com/
    Screenshot of Connect to shared database dialog
    Screenshot of JabRef with an open shared database
    Screenshot of Update refused dialog
    Screenshot of Update refused dialog due to a deleted entry
    Screenshot of Connection lost dialog

    Save actions

    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 .

    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)

    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 .

    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.".

    New entry from plain text

    Entries can be created from a reference text.

    In case you have a reference string, JabRef offers the functionality to convert the text to BibTeX. Thereby, JabRef uses the technology offered by Grobid.

    Example:

    O. Kopp, A. Armbruster, und O. Zimmermann, "Markdown Architectural Decision Records: Format and Tool Support", in 10th ZEUS Workshop, 2018.
    1. Click Library and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.

    2. The "Plain Reference Parser" window opens

    3. Paste the reference text:

    4. Click "Add to current library"

    5. The result is selected in the entry table:

    JabRef thereby used the service offered by . This servce was shut down in 2019. The following explanations are only for historical interest.

    1. Click BibTeX and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.

    2. Select an entry type. Select "InProceedings", this works in the most cases

    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".

    Database properties window

    Each database can have specific properties that can be modified through File → Database properties) or by right clicking on the tab of the database and choosing "Database properties". These specific properties override the generic properties defined in Options → Preferences.

    Screenshot for Database Properties

    The database-specific properties are stored in the database itself. This way, when moving the database to another computer, these properties are preserved. In most of cases these are stored in the bib-file database using text blocks starting with @Comment{jabref-meta: .

    Database encoding

    This setting determines which character encoding JabRef will use when writing this database to disk. Changing this setting will override the setting made in Preferences dialog for this database. JabRef specifies the encoding near the top of the bib file, in order to be able to use the correct encoding next time you open the file.

    The dropdown menu allows to select one encoding. UTF-8 is highly recommended.

    In your database, files (PDF, etc.) can be linked to an entry. The list of these files are stored in the file field of the entry. The location of these files has to be specified.

    For your database, you can define a General file directory and a User-specific file directory. These settings override the main file directory defined in the Preferences dialog.

    The General file directory is a common path for all the users of a shared database. The User-specific file directory allows each user to have its own file directory for the database. If defined, it overrides the General file directory.

    JabRef stores the name of the current system alongside the User-specific file directory. This assumes that each user of the database has a different system name. For example, when using the computer laptop, the entry in the bib file is @Comment{jabref-meta: fileDirectory-jabref-laptop:\somedir;}

    Relative directories can be specified. This means that the location of the files will be interpreted relative to the location of the bib file. Simply setting a directory to "." (without quotes) means that the files should reside in the same directory as the bib file.

    Note: the legacy PDF/PS links (i.e. the pdf and ps fields, which were used in JabRef versions prior to 2.3), should in current versions be replaced by general file links. This can be done using Quality → Cleanup entries... and enabling Upgrade external PDF/PS links to use the 'file' field.

    When saving the database, the order of the entries will be preserved if Save entries in their original order is selected. Alternatively, by selecting Save entries ordered as specified, you can choose to sort the entries using three criteria. For each criterion, you can type-in the field to be used and select the order.

    Note: Entries containing a crossref field will always be placed prior to the other entries. This is a necessary preliminary for BibTeX to be able to determine the correct referenced values. (See: , p. 26)

    While you edit a shared database, another user may be editing it too. By default, saving the database will overwrite changes done by others (although a warning message about the changes will be displayed).

    To avoid discarding changes involuntarily, and hence to allow a smooth collaborative work, you can choose to Refuse to save the database before external changes have been reviewed. This setting lets you enforce reviewing of external changes before the database can be saved: users will only be able to save the database after any external changes have been reviewed and either merged or rejected.

    Note: this is not a security feature, merely a way to prevent users from overwriting other users' changes inadvertently. This feature does not protect your database against malicious users.

    Field formatting can be tidied up when saving the database. That ensures your entries to have consistent formatting. If you check Enable save actions, the list of actions can be configured.

    For more information see .

    Note that some properties are not available for shared as they are not handled like a .bib file. The following properties are not available:

    • Database encoding (always UTF-8)

    • Save sort order

    • Database protection

    Add unlinked PDFs including BibTeX data into the database

    This feature is available through Quality → Find unlinked files....

    The following description appeared first on .

    JabRef offers a BibTeX key generation and offers different patterns described at .

    1. Create or open a .bib file.

    Custom import filters

    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

    "d.M.uuuu" (covers 15.1.2015)

    Add enclosing braces

    Clear

    Escape underscores

    HTML to LaTeX

    HTML to Unicode

    LaTeX cleanup

    Normalize date

    Normalize en dashes

    Normalize month

    Normalize names of persons

    Normalize page numbers

    Ordinals to LaTeX superscript

    Remove enclosing braces

    Remove hyphenated line breaks

    Remove line breaks

    Shorten DOI

    Unicode to LaTeX

    Units to LaTeX

    Capitalize

    Lower case

    Protect terms

    Sentence case

    Title case

    Upper case

    Minify list of person names

    https://tex.stackexchange.com/q/10772/9075
    http://shortdoi.org
    . 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.

    This information is outdated. Please help to improve it.

    Adding a custom import filter

    Creating an import filter

    A simple example

    Sharing your work

    title = {Test with UPPERCASE word},
    title = {{Test with UPPERCASE word}},
    1-2 ⇒ 1--2
    1,2,3 ⇒ 1,2,3
    {1}-{2} ⇒ 1--2
    43+ ⇒ 43+
    Invalid ⇒ Invalid
    1936;John Maynard Keynes;The General Theory of Employment, Interest and Money
    2003;Boldrin & Levine;Case Against Intellectual Monopoly
    2004;ROBERT HUNT AND JAMES BESSEN;The Software Patent Experiment
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import net.sf.jabref.logic.importer.Importer;
    import net.sf.jabref.logic.importer.ParserResult;
    import net.sf.jabref.logic.util.FileExtensions;
    import net.sf.jabref.model.entry.BibEntry;
    import net.sf.jabref.model.entry.BibtexEntryTypes;
    
    public class SimpleCSVImporter extends Importer {
    
        @Override
        public String getName() {
            return "Simple CSV Importer";
        }
    
        @Override
        public FileExtensions getExtensions() {
            return FileExtensions.TXT;
        }
    
        @Override
        public String getDescription() {
            return "Imports CSV files, where every field is separated by a semicolon.";
        }
    
        @Override
        public boolean isRecognizedFormat(BufferedReader reader) {
            return true; // this is discouraged except for demonstration purposes
        }
    
        @Override
        public ParserResult importDatabase(BufferedReader input) throws IOException {
            List<BibEntry> bibitems = new ArrayList<>();
    
            String line = input.readLine();
            while (line != null) {
                if (!line.trim().isEmpty()) {
                    String[] fields = line.split(";");
                    BibEntry be = new BibEntry();
                    be.setType(BibtexEntryTypes.TECHREPORT);
                    be.setField("year", fields[0]);
                    be.setField("author", fields[1]);
                    be.setField("title", fields[2]);
                    bibitems.add(be);
                    line = input.readLine();
                }
            }
            return new ParserResult(bibitems);
        }
    }
    javac -classpath JabRef-2.0.jar SimpleCSVImporter.java
    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.

  • JabRef 4.x

    Manual way

    FreeCite
    manual
    Go to "Quality" -> "Find unlinked files".
  • The "Find unlinked files" dialog opens.

  • Choose a directory using the "Browse" button.

  • Click on "Scan directory".

  • In "Select files", the files not yet contained in the database are shown.

  • To create entries for all files, click on "Apply".

  • For each file, an import dialog is shown The dialog shows the XMP metadata stored in the PDF in the area "XMP-metadata". If this data fits your needs, select "Create entry based on XMP data". Typically, the XMP-metadata is not good enough. Choose "Create entry based on content".

  • Click on "OK" to start the import

  • A dialog asking for the link is opened You can choose "Leave file in its current directory" to keep the file where it is. Typically, this is that what one wants. In case you choose "Move file to file directory", you can also choose to rename the file to the generated BibTeX key.

  • Press OK to link the file to the BibTeX entry

  • This happens for each file. After that, the "Find unlinked files" dialog is shown. Just click on "Close" to close it.

  • The entry editor with the last imported entry is shown

  • You can now save the file and are finished.

  • Optional: Click on "General" to see the linked file

  • Optional: Click on "BibTeX source" to see the BibTeX source

  • Optional: You have to shrink it to see the entry in the entry table Enlarge the JabRef window and use the mouse at the upper border of the entry editor

  • Optional: Press Esc to show the entry preview

  • 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.

    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}.

    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.

    • Extract titles from each page of a PDF?

    • Zotero: Extract references from PDF and create new library items from them

    • Is there an open source tool for producing bibtex entries from paper PDFs?

    Preparation: Adjust the JabRef key generation pattern to fit your needs

    Link the PDFs to your bib file

    tex.stackexchange.com
    BibtexKeyPatterns

    Further information

    PDFs for which it works

    Better filenames

    Mr.DLib

    Related questions on stack overflow

    Override default file directories

    Save sort order

    Database protection

    Save actions

    Shared SQL database

    Tame the BeaST
    Save Actions
    SQL databases

    JabRef Browser Extension

    The official browser extension automatically identifies and extracts bibliographic information on websites and sends them to JabRef with one click.

    Firefox - Chrome - Edge - Vivaldi

    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.

    Installation and Configuration

    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:

    1. Make sure you have at least installed.

    2. Install the JabRef browser extension: , ,

    3. On Windows 7, please .

    1. Download and install the Debian package of

    2. Install the JabRef browser extension: , ,

    3. Download and put it into

    1. Install the snap package of

    2. Install the JabRef browser extension: , ,

    3. Connect the appropriate plug for the selected browser:

    1. Download and install the DMG package of .

    2. Install the JabRef browser extension: , ,

    3. Download and put it into

    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, ) 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.

    Contributing

    We are really happy that you are interested in contributing to JabRef. Please take your time to look around here. We especially invite you to look into our community members page where members introduce themselves.

    I am not a programmer

    I would like to improve the help page. What are the steps?

    Please use the "Edit on GitHub" link at the upper right corner. Then, follow GitHub's guide to edit files in other user's repository.

    I would like to help translating JabRef to another language. How do I get started?

    We encourage you to read about translating the JabRef user interface.

    I want to keep Wikipedia pages up-to-date

    JabRef improves -- and Wikipedia pages should keep up!

    Simply click on "Edit" (top right-hand tab).

    Currently existing pages are:

    • Deutsch:

    • English:

    • Español:

    • Français:

    • Italiano:

    • Русский:

    • Portuguese:

    • Svenska:

    • Українська:

    • 中文:

    If there is no page for you own language, you can easily create one.

    Donations keeps us going! You can use Paypal, Flattr, or bank transfers. Your institution/company can contribute too, through bank transfer for example. All details are provided at .

    Our team consists of volunteers. To provide better support, we are currently trying to get a funded developer on board. Please consider donating money!

    Please head to to learn about our current efforts to measure and improve code quality.

    We collect small issues at . In case you do not find something suitable, you are invited to get in touch with us. Comment at the issue, check the or join our . For the brave, we also collect issues at .

    After finding something, please check our for detailed information and further links.

    Look at the discussions in our forum at . Find an interesting topic, discuss it and start contributing.

    You can talk to the core developers of JabRef in the .

    XMP metadata support in JabRef

    XMP is a standard created by Adobe Systems for storing metadata (data about data) in files. An well known example for metadata are MP3 tags, which can be used to describe artist, album and song name of a MP3 file. Adding metadata to MP3 helps other people to identify the songs correctly independent of file-name and can provide means for software (MP3 players for instance) to sort and group songs.

    With XMP-support the JabRef team tries to bring the advantages of metadata to the world of reference managers. You can now choose to "Write XMP" metadata in the General Tab of JabRef, which will put all the BibTeX information into the PDF. If you then email this PDF to a colleague she can just drag the file into JabRef and all information that you entered will be available to her.

    Usage

    To use the XMP-feature in JabRef you can do the following:

    • To import a single annotated PDF-file that contains XMP you can select "File → Import into... → XMP-annotated PDF" or drag the file into the main view.

    • To write the bibliographic information to the associated PDF do the following: Double click the entry in the main view, go to the "General" tab and click on "Write XMP".

    • If you want to annotate all the PDFs in a given database you can select "Tools → Write XMP for database"

    • To verify if it worked you can open the PDF in Adobe Acrobat and select "File → Document Properties → Additional Metadata → Advanced". In the tree to the right you should see an entry called "". This works only with Adobe Acrobat, not with Adobe Reader.

    • If you don't have Adobe Acrobat, you can use pdfinfo instead in order to see the XMP metadata. pdfinfo is part of and .

    XMP uses a subset of the Resource Description Framework (RDF) to store data. For JabRef a new metadata format is used which maps very closely to BibTeX. Basically all fields and values are turned into nodes of an XML document. Only authors and editors are stored as rdf:Seq-structures, so users of the data can skip the splitting on 'and's. All strings and crossrefs will be resolved in the data.

    The following easy minimal schema is used:

    • The BibTeX-key is stored as bibtexkey.

    • The type of the BibTeX-entry is stored as entrytype.

    • author

    The following is an example of the mapping

    will be transformed into

    Beware of the following caveats if you trying to parse BibTeXMP:

    • In RDF attribute-value pairs can also be expressed as nodes and vice versa.

    Some links about XMP and annotating PDFs

    How to translate the JabRef User Interface

    Introduction

    JabRef comes with a set of translations into different languages, currently: Chinese (simplified), Danish, Dutch, English, Farsi, French, German, Indonesian, Italian, Japanese, Norwegian, Persian, Portuguese (Brazil), Russian, Spanish, Swedish, Turkish and Vietnamese.

    If the JabRef interface already exists in your language, you can help improve it. Otherwise, you can start translating JabRef into your own language.

    For each language, there is the file JabRef_xx.properties (xx denotes the country code for the language). It contains all translations in a key/value format. In the JabRef source code tree, the property files reside in the /src/main/resources/l10n directory.

    Improving an existing translation

    We use the service of Crowdin to keep our translations updated. It is a service directly running in the browser and one can quickly join and start translating. Please visit https://translate.jabref.org/ to get started.

    Translating JabRef into a new language

    Crowdin offers to quickly add a new language. Please contact us so that we add a new language.

    Each entry is first given in English, then in the other language, with the two parts separated by an '=' character. For instance, a line can look like this in a German translation file:

    Note that each space character is escaped (\) to make it a valid property key. The translation value does not need any esacpes.

    Some entries contain "variables" that are inserted at runtime by JabRef - this can for instance be a file name or a file type name:

    A variable is denoted by %0, %1, %2 etc. In such entries, simply repeat the same notation in the translated version.

    As we can see, there are several "special" characters: the percent sign and the equals sign, along with the colon character. If these characters are to be part of the actual text in an entry, they must be escaped in the English version, as with the colon in the following example:

    The character encoding should be UTF-8. Please avoid Unicode escaping such as \u2302.

    To test your translation you must be able to compile the source tree after making your additions. This requires you to install the . Ensure that you use the most recent version.

    Crowdin allows for downloading the current translation file:

    Place the downloaded file in the path src/main/resources/l10n. Then, execute gradlew run in the root directory and JabRef should start.

    For testing a crowdin-contributed translation without having to compile JabRef, one has to wait until the translation is incorporated into the current source code of JabRef.

    For a new language to be available within JabRef, a corresponding line must be added in the Java class GUIGlobals (found in the directory /src/main/java/org/jabref/logic/l10n/Languages.java in the JabRef source code tree). The line is inserted in the static {} section where the map LANGUAGES is populated. The code must of course be recompiled after this modification.

    Linux

    Is there any way to include JabRef in the start menu of Ubuntu?

    Yes, there is. See http://askubuntu.com/a/721387/196423 for details.

    JabRef does not start under Linux! What can I do?

    JabRef 5.x

    JabRef 5.x requires Java 13 (It is included in the native builds)

    JabRef 4.x

    JabRef requires Java 8

    Please follow the steps provided on our installation page. JabRef 4.x does not run under Java 9 or newer. See https://github.com/JabRef/jabref/issues/2594

    You might see the error message Error: Could not find or load main class org.jabref.JabRefMain. This means, you do not have JavaFX support activated in your Java runtime environment. This typically happens if you use , where one needs to setup separately.

    You have several Java Virtual Machines installed, and under the command line the wrong one is chosen. Have a look at the previous question that tells you how to change the virtual machine used.

    For Ubuntu you may also have a look at the .

    As far as we know, JabRef is not yet running on these free JVMs, due of our dependencies. However, JabRef is reported to run nicely on the runtime, which is based on the built with to fill in missing classes. Some issues have been encountered with the look and feel (see issues and ). Please let us know if newer versions give different results. If you have an idea or the expertise to make JabRef work under Classpath, let us know.

    In the background, JabRef uses . Applications using JavaFX can be scaled via java -Dglass.gtk.uiScale=1.5 -jar <application>.jar. If you have installed JabRef via a package manager, you probably don't have a .jar file but a binary file. In this case, you need to find your JabRef.cfg in your installation folder (possibly located at /opt/JabRef/lib/app/JabRef.cfg) and add in the section [JavaOptions] the line -Dglass.gtk.uiScale=1.5. Then, restart JabRef. Try finding a value that is suitable for you. On high resolution displays, values around 1.5 seem to be reasonable.

    File links in JabRef

    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 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.

    How to Improve the Help Page

    Here is a quick start guide of how to improve the help page.

    Our help pages are hosted at with an integration to GitHub., which provides version control based on . In order to edit or create a JabRef help page you need a GitHub account. You can sign up for free.

    If you already have an account, please make sure that you are signed in.

    The easiest way to fix small errors or to add additional information is to edit a JabRef help page directly in your browser:

    At the top of each help page you can find the GitHub icon. Just click here to show the source of the page.

    This leads you to GitHub:

    I am on Debian/Ubuntu and clicking on the JabRef icon works, but I cannot start JabRef from the command line. What is wrong?

    Does JabRef run under free Java (Classpath, Kaffee, GCJ, etc.)?

    Everything looks too big or too small. How can I change it to to a more reasonable size?

    OpenJDK
    OpenJFX
    Ubuntu page on Java
    IcedTea
    OpenJDK
    GNU Classpath
    #393
    #2003
    JavaFX
    and
    editor
    are encoding as
    rdf:Seq
    s where the individual authors are represented as
    rdf:li
    s.
  • All other fields are saved using their field-name as is.

  • BibTeXmp Fileformat

    Related Links

    http://purl.org/net/bibteXMP
    Xpdf
    Popple
    Wikipedia Article
    James Howison's blog "Themp---Managing Academic Papers like MP3s"
    Good thread on ArsTechnica discussing the management of PDFs.
    @INPROCEEDINGS{CroAnnHow05,
      author = {Crowston, K. and Annabi, H. and Howison, J. and Masango, C.},
      title = {Effective work practices for floss development: A model and propositions},
      booktitle = {Hawaii International Conference On System Sciences (HICSS)},
      year = {2005},
      owner = {oezbek},
      timestamp = {2006.05.29},
      url = {http://james.howison.name/publications}
    }
    <rdf:Description xmlns:bibtex="http://jabref.sourceforge.net/bibteXMP/"
        bibtex:bibtexkey="CroAnnHow05"
        bibtex:year="2005"
        bibtex:title="Effective work practices for floss development: A model and propositions"
        bibtex:owner="oezbek"
        bibtex:url="http://james.howison.name/publications"
        bibtex:booktitle="Hawaii International Conference On System Sciences (HICSS)"
        bibtex:timestamp="2006.05.29">
            <bibtex:author>
                <rdf:Seq>
                    <rdf:li>K. Crowston</rdf:li>
                    <rdf:li>H. Annabi</rdf:li>
                    <rdf:li>J. Howison</rdf:li>
                    <rdf:li>C. Masango</rdf:li>
                </rdf:Seq>
            </bibtex:author>
        <bibtex:entrytype>Inproceedings</bibtex:entrytype>
    </rdf:Description>

    Download the following files and copy them to the same directory as JabRef.exe

    • jabref.json

    • jabref-chrome.json

  • 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:

    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\org.jabref.jabref" /ve /d "C:\path\to\jabref.json" /f

    For Chrome/Opera support

    REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\org.jabref.jabref" /ve /d "C:\path\to\jabref-chrome.json" /f

    You may need to change the root HKEY_LOCAL_MACHINE to HKEY_CURRENT_USER if you don't have admin rights.

  • /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

  • 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

  • /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

  • Windows

    Linux

    Deb, RPM or Portable

    Snap

    Mac OS

    Usage

    Firefox
    Chrome
    Edge
    Vivaldi
    JabRef 5.0
    Firefox
    Chrome
    Vivaldi
    upgrade Powershell
    JabRef 5.0
    Firefox
    Chrome
    Vivaldi
    org.jabref.jabref.json
    JabRef 5.0
    Firefox
    Chrome
    Vivaldi
    JabRef 5.0
    Firefox
    Chrome
    Vivaldi
    org.jabref.jabref.json
    the arXiv
    Adding external links to an entry
  • Directories for files

  • Auto linking files

    • Using Regular Expression Search for Auto-Linking

  • Opening external files

  • Setting up external file types

  • 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.

    list of linked files

    JabRef offers following directory settings:

    1. Options → Preferences → File → External file links → Main file directory

    2. File → Library properties → General file directory.

    3. 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.

    auto link file

    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.

    Preferences for external file links

    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.

    Download from URL

    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.

    Use regular expression search

    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.

    Manage external file types

    Table of contents

    External Files

    Adding external links to an entry

    Directories for files

    Auto linking files

    Opening external files

    Setting up external file types

    Click on the pencil icon

    To actually edit the page click on the pencil icon which is highlighted above.

    The window to edit the page at GitHub looks like this:

    Edit view at GitHub

    Most text can be simply added in this field as plain text. However, you can style your contribution by using markdown. Markdown is a rather easy way to format text without the need for complex markup as for example in HTML.

    You can find an introduction to markdown here or here.

    In order to check your changes hit the "Preview Changes" tab:

    Edit view at GitHub

    To save the changes you have to create a so called "Commit" by scrolling down and hitting the button "Propose File Change":

    Save changes

    Please note: The message you provide here will be visible in the history of the help page, so please think a second to provide a meaningful description of your changes.

    As a last step you have to submit the changes you have made back to us:

    Create Pull Request

    Just hit the button "Create Pull Request" and confirm the creation on the next page which is opened by hitting "Create Pull Request".

    That's it! We'll review your changes and publish them at docs.jabref.org.

    To edit more than one file at a time, to add screenshots, and for other more advanced changes we recommend to checkout this repository locally and to create a PR of your changes using the standard git and GitHub workflow.

    The best way to enter tables is to use this Table generator for Markdown. It has the nice feature to generate markdown tables from different sources, e.g. you can directly copy the table from a spreadsheet or upload a csv files. Just copy and paste the generated markdown.

    Prerequisite

    Editing Help Pages directly in the browser

    Start editing

    GitBook
    git
    here

    Make your changes

    Saving the changes

    Advanced editing

    Tables

    Background\ color\ for\ optional\ fields=Hintergrundfarbe für optionale Felder
    Synchronizing\ %0\ links...=Synchronisiere %0-Links...
    Error\ writing\ XMP\ to\ file\:_%0=Fehler beim Schreiben von XMP in die Datei: %0

    The format of the property files

    Testing the translation

    Java Development Kit
    Screenshot of Crowdin download dialog

    I have some cool feature requests

    Can I make a donation? How?

    I am a programmer

    I want to learn about code quality

    I want to start with something easy

    I want something with huge impact

    I need help with the code

    https://de.wikipedia.org/wiki/JabRef
    https://en.wikipedia.org/wiki/JabRef
    https://es.wikipedia.org/wiki/JabRef
    https://fr.wikipedia.org/wiki/JabRef
    https://it.wikipedia.org/wiki/JabRef
    https://ru.wikipedia.org/wiki/JabRef
    https://pt.wikipedia.org/wiki/JabRef
    https://sv.wikipedia.org/wiki/JabRef
    https://uk.wikipedia.org/wiki/JabRef
    https://zh.wikipedia.org/wiki/JabRef
    Come discuss about it!
    https://donations.jabref.org
    https://devdocs.jabref.org/code-quality
    https://github.com/JabRef/jabref/labels/good%20first%20issue
    the forum
    chatting channel
    https://github.com/koppor/jabref/labels/good%20first%20issue
    CONTRIBUTING.md
    https://discourse.jabref.org/c/features/6
    gitter chat
    Extracting information from PDFs of research papers
    Push to External MacOS
    Push to External Windows

    Command line use and options

    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.

    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

    Searching within the library

    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.

    Groups

    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.

    JabRef.bat
    JabRef.ps1
    Screenshot of determine DOI
    Screenshot of get BibTeX data from DOI
    Screenshot of Merge Entries Dialog
    Screenshot of Result
    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.

    • Help: -h

    • No-GUI mode: -n

    • Import file: -i filename[,import format]

    (or --help)

    Displays a summary of the command line options, including the list of available import and export formats.

    (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.

    (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.

    (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.

    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.

    (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)

    (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.

    (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.

    (or --automaticallySetFileLinks)

    Automatically set file links.

    (or --generateBibtexKeys)

    Regenerate all keys for the entries of a BibTeX file.

    (or --prexp filename)

    Export user preferences to an XML file. After exporting, JabRef will start normally.

    (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.

    (or --prdef key)

    Reset preferences (key1, key2,..., or all).

    (or --blank)

    Do not open any files at startup

    (or --version)

    Display the version number of JabRef.

    Show debug level messages.

    Show info and error messages in the console.

    Basics

    This description applies since JabRef 5.0, because JabRef comes with a pre-bundled Java-Runtime Environment

    C:\portable-apps\JabRef-5.0-portable_windows\JabRef\runtime\bin\JabRef.bat[OPTIONS] [BIBTEX_FILE]
    C:\portable-apps\JabRef-5.0-portable_windows\JabRef\runtime\bin\JabRef.bat -o filetoexport.xml,docbook5 -n true original.bib
    JabRef.bat -o path\export.xmp,xmp  path\entries.bib -n
    JabRef.bat -o path\split,xmp  path\entries.bib -n

    Options

    Help: -h

    No-GUI mode: -n

    Import file: -i filename[,import format]

    Export file: -o filename[,export format]

    Xmp export option

    Import BibTeX: -importBibtex

    Export matching entries: -m [field]searchTerm,outputFile:file[,exportFormat]

    Fetch entries from Web: -f=FetcherName:QueryString

    Subdatabase from .aux file: -a infile[.aux],outfile[.bib] base-BibTeX-file

    Set file links: -asfl

    Regenerate keys: -g

    Export preferences: -x filename

    Import preferences: -p filename

    Reset preferences: -d key

    No files at startup: -b

    Version: -v

    Debug mode: --debug

    Display output in the console: --console

    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 .

    • 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.

    search

    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

    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.

    Since: 3.7

    Screenshot of the search bar

    Search settings

    Search modes

    Normal search

    Advanced search

    Syntax

    Pseudo fields

    Regular expressions

    Regular expressions and casing

    Searching for entries with an empty or missing field

    Searching for a given word

    Searching with optional spelling

    Searching for strings with a special character (()[]{}\^-=$!|?*+.)

    Searching for strings with double quotation marks (")

    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:

    1. The group All Entries, which -- as the name suggests -- contains all entries, is always present and cannot be edited or removed.

    2. Static groups behave like directories on disk and contain only those entries that you explicitly assign to them.

    3. 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.

    4. Dynamic groups based on free-form search expressions contain entries that match a specified search expression, using the same syntax as the on the side pane. This supports logical operators (AND, OR, NOT) and allows to specify one or more BibTeX fields to search, facilitating more flexible group definitions than a keyword search (e.g. author=smith and title=electrical).

    Every group that you create is of one of the last three types. The group editing dialog, which is invoked by double-clicking on a group, shows a short description of the selected/edited group in plain English.

    Just like directories, groups are structured like a tree, with the group All Entries at the root. By right-clicking on a group you can add a new group to the tree, either at the same level as the selected group or as a subgroup of it. The New Group button lets you create a new subgroup of the group All Entries, regardless of the currently selected group(s). The context menu also allows to remove groups and/or subgroups, to sort subgroups alphabetically, or to move groups to a different location in the tree. The latter can also be done by Drag and Drop, with the restriction that Drag and Drop does not support changing the order of a group's subgroups.

    Undo and redo is supported for all edits.

    Defines the name of the group, as displayed in the group panel.

    A description of the group, to help you remember what it is about. Hovering the mouse over the group name displays this description.

    An icon can be displayed in front of the group name. Choose your favorite icon among the ones available at https://materialdesignicons.com/, and enter its name of the field Icon. The color of the icon can be set in to the field Color.

    groups having colors

    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.

    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 search expression syntax 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.

    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.

    Groups Interface

    Types of groups

    Groups structure, creating and removing groups

    Group name

    Description of the group

    Icon and color

    Type of group

    Static groups

    Dynamic groups

    Hierarchical context

    Viewing a group's entries, combining multiple groups

    Groups and searching

    Highlighting overlapping groups

    New entries assigned to selected groups

    Advanced features

    Automatically creating dynamic groups

    Refreshing the groups view

    Mixing refining groups with including groups

    Using Regular Expression Search for Auto-Linking
    Join the chat at https://gitter.im/JabRef/jabref
    Join the chat at https://gitter.im/JabRef/jabref
    Join the chat at https://gitter.im/JabRef/jabref
    New entry from plain text
    Result of Grobid Parsing
    Paste
    Plain Reference Parser
    paste
    parsed result
    plain text import
    paste

    General FAQs

    Q: I use JabRef in my work. Should I mention JabRef in my publications?

    A: You are not obliged to cite JabRef, but we would greatly appreciate it if you do.

    Q: Is JabRef free for private and corporate use?

    A: Yes it is. JabRef is distributed under the MIT License, which allows the following usage.

    Q: JabRef does not start. What should I do?

    A: You can try resetting the settings. Depending on your operating system, you may need to pass the command line arguments -d all -n to JabRef.

    (E.g. in Windows this means jabref-X.Y.exe -d all -n, where X.Y means the version number of JabRef. If this does not help, run regedit and delete the folder HKEY_CURRENT_USER\SOFTWARE\JavaSoft\Prefs\net\sf\jabref. Be careful with regedit, as you can easily corrupt the basic Windows configuration.)

    A: Don't panic. No data should be damaged in your bib library. Since version 5.0 the columns in the main entry table are stored differently internally. You can reset the preferences by command line. See above.

    A: We are collecting all publications we hear about at .

    A: Yes. In Options → Preferences → General set "Default Encoding" to UTF8 and select an alternative user interface language in "Language" if required.

    A: In Options → Preferences → Advanced → “Remote operation” put a checkmark to “Listen for remote operation on port”. This option allows new instances of JabRef to detect the instance already running, and pass files to that instead of opening a new window. (Default option since ).

    A: In Library → New entry you can select the type of the identifier in the field "ID type" and enter the identifier in "ID". A click on "Generate" should create the correct entry. If this does not work, try a web search.

    A: There are several reasons why JabRef cannot find your identifier online. (E.g. one reason could be that your DOI is not listed in the if you are using the CrossRef fetcher. Another reason could be that the search result for your DOI on returns invalid BibTeX which is unable to be read by JabRef.) Try a web search instead.

    A: To add this translator field to all entry types, you can use Options → Set up general fields and add a translator field under one of JabRef's general field tabs. To add this translator field to a specific entry type, edit the specific entry type(s) (Options → Customize entry types) and add a translator field under required fields or optional fields, as you like.

    A: Open Options → Preferences. In the “File” panel, you will find an option called “Do not wrap the following fields when saving”. This option contains a semicolon-separated list of field names. Any field you add to this list will always be stored without introduction of line breaks.

    A: Yes, you can use the parameter --importToOpen bibfile of the .

    A: You need to override the default file directory for this specific library. In File → Library properties you can override the Default file directory setting. There, you can either enter the path in General file directory (for it to be valid for all users of the file) or in User-specific file directory (for it to be valid for you only). If you simply enter “.” (a dot, without the quotes), the file directory will be the same as the .bib file directory. To place your files in a subdirectory called subdir, you can enter “./subdir” (without the quotes). Files will automatically be linked with relative paths if the files are placed in the default file directory or in a directory below it.

    A: In File → Library properties you can choose a library specific directory in the field “General file directory”. If you want to set a directory only for you (so that other users should use the default directory), use the field “User-specific file directory”.

    A: Use File → Export. As “Filter” choose “OpenOffice/LibreOffice CSV (*.csv)”.

    A: Select the entries. Right click. Choose “Manage keywords”. There you can manage keywords appearing in all selected entries or in any selected entry. New keywords are added to all selected entries.

    A: In Options → Manage external file types you can add arbitrary types.

    A: JabRef offers a portable version of the application as a compressed file (.zip or .tar.gz) without an installer. Be sure to activate "Load and Save preferences from/to jabref.xml on start-up (memory stick mode)" in Options → Preferences → General.

    A: Use curly braces to tell BibTeX to keep your author field as is: {European Commission}. In BibLaTeX, you can use label = {EC} to have EC05 as label for a publication of the European Commission in the year 2005.

    A: Take a look at “Bibliographies and citations” at the . For German readers, there is the .

    A: Your JabRef library is already a file in Bib(La)TeX format. To export a specific subset of your library select the entries to be exported and then choose File → Export → Save Selected as plain BibTeX....

    A: Upon compilation, LaTeX generates a file with the extension ".aux". This files contains the keys of the cited references (among other things). Using this AUX file, JabRef can extract the relevant entries. Choose the menu Tools → New sublibrary based on AUX file. Select the reference library (among the opened ones) and specify the AUX file.

    A: In File → Library properties, you will find a section named "Save actions". After enabling this feature, you can choose which actions should be performed for each field upon saving. That should help you keep your library tidy.

    A: Google scholar is blocking "automated" crawls which generate too much traffic in a short time. JabRef already uses a two-step approach (with the prefetched list before crawling the actual BibTeX data) to circumvent this. However, after too much crawls JabRef is being blocked. To solve this issue, see the section Traffic limitations in the .

    A: You have to start vim with the option --servername (such as vim --servername MyVimServer). If you get the Unknown option argument message, it means your version of vim does not include the clientserver feature (you can check with vim --version). In such a case, you have to install another version of vim.

    A: In JabRef 3.0 plugin support was removed, because the development team cannot keep up plugin support any more. Nevertheless, plugins can be integrated in JabRef. See for the current status and discussion. Please contact the author of the respective plugin and ask him to port his plugin into JabRef's code.

    A: JabRef does no longer support plugins (since version 3.0). Automatic file renaming is now part of the Quality → Cleanup entries feature. There you can rename attached files based on the BibTeX key. You can change the format (pattern) under Options → Preferences → Import, by altering the pattern under "Default PDF file link action".

    A: Download the portable version (file JabRef-X.Y.portable_windows.zip, JabRef-X.Y.portable_macos.tar.gz, or JabRef-X.Y.portable_linux.tar.gz) from , uncompress it, and run the executable. We recomment a folder such as ~/home/JabRef or c:\portable-apps\JabRef to ensure that the portable version does not conflict with the latest release version installed from .

    In case you want to development version open when double clicking a .bib file, install the development version and uncompress the portable version of the latest release to a folder.

    A: Enter XYZ in the search field located at the upper left-hand corner of the preference window.

    FindUnlinkedFiles - 01 - menu
    FindUnlinkedFiles - 02 - initial dialog
    FindUnlinkedFiles - 03 - scan result
    FindUnlinkedFiles - 11 - entry editor - shrunk
    FindUnlinkedFiles - 12 - entry preview
    FindUnlinkedFiles - 08 - entry editor
    Preferences - Import
    FindUnlinkedFiles - 09 - entry editor - General
    FindUnlinkedFiles - 04 - metadata
    FindUnlinkedFiles - 05 - LinkToFile
    FindUnlinkedFiles - 10 - entry editor - BibTeX source

    About BibTeX and its fields

    JabRef helps you work with your BibTeX databases, but there are still rules to keep in mind when editing your entries, to ensure that your database is treated properly by the BibTeX program.

    JabRef stores the encoding of the file and (in case a shared is used) the ID of the shared database in the header of the bib file.

    % Encoding: <encoding>: States the encoding of a BibTeX file. E.g., % Encoding: UTF-8

    To enable , JabRef adds % DBID: <id> to the header. This helps JabRef identifying the SQL database where the file belongs. E.g., % DBID: 2mvhh73ge3hc5fosdsvuoa808t

    Customize the BibTeX key generator

    The pattern used in the auto generation of BibTeX labels can be set for each of the standard entry types in Options → Preferences, tab BibTeX key generator. Additionally, if you right click the tab of a database, the menu BibTeX key patterns allows to set specific key patterns for this database.

    The key pattern can contain any text you wish, in addition to field markers that indicate that a specific field of the entry should be inserted at that position of the key. A field marker generally consists of the field name enclosed in square braces, e.g. [volume]. If the field is undefined in an entry at the time of key generation, no text will be inserted by the field marker.

    If you have not defined a key pattern for a certain entry type, the Default pattern will be used. You can change the default pattern - its setting is above the list of entry types in the BibTeX key generator section of the Preferences dialog.

    The default key pattern is [auth][year], and this could produce keys like e.g. Yared1998

    Export file: -o filename[,export format]
    Import BibTeX: -importBibtex
    Export matching entries: -m [field]searchTerm,outputFile:file[,exportFormat]
    Fetch entries from Web: -f=FetcherName:QueryString
    Subdatabase from .aux file: -a infile[.aux],outfile[.bib] base-BibTeX-file
    Set file links: -asfl
    Regenerate keys: -g
    Export preferences: -x filename
    Import preferences: -p filename
    Reset preferences: -d key
    No files at startup: -b
    Version: -v
    Debug mode: --debug
    Display output in the console: --console

    Q: I have tried the latest version of JabRef. Since then, the library entries are no longer displayed in any old version. What should I do?

    Q: Are there any publications dealing with JabRef?

    Q: Does JabRef support non-English languages or UTF8 in general?

    Q: If I double click a BibTeX file in the file browser, JabRef always opens a new window. Can JabRef open the libraries in the same window just in a different tab?

    Q: I have an DOI/ISBN/ePrint/etc. Is it possible to create an entry directly out of this identifier?

    Q: Why can't JabRef find any DOI/ISBN/ePrint/etc.?

    Q: I miss a field translator, lastfollowedon, etc. How can I add such fields?

    Q: How do I prevent JabRef from introducing line breaks in certain fields (such as “title”) when saving the .bib file?

    Q: Is it possible to append entries from a BibTeX file, e.g. from my web browser, to the currently opened library?

    Q: How do I link external files with paths relative to my .bib file, so I can move my library along with its files to another directory?

    Q: Can I use a bib-file specific PDF directory?

    Q: How do I export my bibliography entries into a simple text file, so I can import them into a spreadsheet (in LibreOffice, OpenOffice, MS Office, etc.)?

    Q: How do I add and remove keywords of multiple entries?

    Q: When linking a file, I cannot set the correct type. How do I add new types?

    Q: Is there a portable version of JabRef?

    Q: When an organization is provided as author, my BibTeX style doesn't recognize it. For instance, “European Commission” is converted to “Commission, E.”.

    Q: Is there a FAQ on BibTeX?

    Q: How do I export a subset to of my library to BibTeX (or BibLaTeX) format?

    Q: How do I export a subset corresponding to my LaTeX file?

    Q: When I modify my library, I would like that JabRef performs entry cleaning automatically. How to do this?

    Q: Search on Google scholar does not work anymore. Why?

    Q: JabRef does not push to vim, although I have configured the right path and server name. What is going on?

    Q: My plugins stopped working. Why?

    Q: Where did the RenameFile plugin go? How do I rename files automatically after importing entries?

    Q: How to test a development version without uninstalling the released version?

    Q: In the preferences, I want to change the option XYZ. How to find it?

    https://github.com/JabRef/jabref/wiki/JabRef-in-the-media
    JabRef 3.0
    CrossRef database
    DOI.org
    command line
    UK List of TeX Frequently Asked Questions on the Web
    dante e.V. FAQ
    Google Scholar help
    issue #152
    https://builds.jabref.org/master/
    https://downloads.jabref.org
    Discourse
    Join the chat at https://gitter.im/JabRef/jabref
    Join the chat at https://gitter.im/JabRef/jabref
    Discourse
    Join the chat at https://gitter.im/JabRef/jabref
    Select entry type
    entry type selection
    .

    There is a lot of different fields in BibTeX, and some additional fields that you can set in JabRef.

    The following fields are recognized by the default bibliography styles:

    • bibtexkey A unique string used to refer to the entry in LaTeX documents. Note that when referencing an entry from LaTeX, the key must match case-sensitively with the reference string. Some characters should not be used in bibtexkey as they are not compatible or not recommended:

      { } ( ) , \ " - # ~ ^ : '

    • address Usually the address of the publisher or other type of institution. For major publishing houses, you may omit the information entirely or give simply the city. For small publishers, on the other hand, you can help the reader by giving the complete address.

    • annote An annotation. It is not used by the standard bibliography styles, but may be used by others that produce an annotated bibliography.

    • author This field should contain the complete author list for your entry. The names are separated by the word and, even if there are more than two authors. Each name can be written in two equivalent forms:

      Donald E. Knuth or Knuth, Donald E.

      Eddie van Halen or van Halen, Eddie

      The second form should be used for authors with more than two names, to differentiate between middle names and last names.

    • booktitle Title of a book, part of which is being cited. For book entries, use the title field instead.

    • chapter A chapter (or section or whatever) number.

    • crossref The database key of the entry being cross referenced.

    • edition The edition of a book--for example, ``Second''. This should be an ordinal, and should have the first letter capitalized, as shown here; the standard styles convert to lower case when necessary.

    • editor This field is analogue to the author field. If there is also an author field, then the editor field gives the editor of the book or collection in which the reference appears.

    • howpublished How something strange has been published. The first word should be capitalized.

    • institution The sponsoring institution of a technical report.

    • journal The name of a journal or magazine. The name of a journal can be abbreviated using a "string". To define such string, use the .

    • key Used for alphabetizing, cross referencing, and creating a label when the ``author'' information is missing. This field should not be confused with the key that appears in the \cite command and at the beginning of the database entry.

    • month The month in which the work was published or, for an unpublished work, in which it was written. You should use the standard three-letter abbreviation of the English names (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec).

    • note Any additional information that can help the reader. The first word should be capitalized.

    • number

      The number of a journal, magazine, technical report, or of a work in a series. An issue of a journal or magazine is usually identified by its volume and number; the organization that issues a technical report usually gives it a number; and sometimes books are given numbers in a named series.

    • organization The organization that sponsors a conference or that publishes a manual.

    • pages One or more page numbers or range of numbers, such as 42--111 or 7,41,73--97 or 43+ (which indicates page 43 and following pages). The standard styles convert a single dash (as in 7-33) to the double dash used in TeX to denote number ranges (as in 7--3).

    • publisher The publisher's name.

    • school The name of the academic institution where a thesis was written.

    • series The name of a series or set of books. When citing an entire book, the title field gives its title and an optional series field gives the name of a series or multi-volume set in which the book is published.

    • title The title of the work. The capitalization may depend on the bibliography style and on the language used. For words that have to be capitalized (such as a proper noun), enclose the word (or its first letter) in braces.

    • type The type of a technical report - for example, "Research Note".

    • volume The volume of a journal or multivolume book.

    • year The year of publication or, for an unpublished work, the year it was written. Generally it should consist of four numerals, such as 1984, although the standard styles can handle any year whose last four nonpunctuation characters are numerals, such as "(about 1984)". This field is required for most entry types.

    BibTeX is extremely popular, and many people have used it to store information in non-standard fields. The information in these non-standard fields may be ignored by BibTeX.

    Here is a list of some of the more common non-standard fields ("*" = not directly supported by JabRef):

    • affiliation* The authors affiliation.

    • abstract An abstract of the work.

    • doi The Digital Object Identifier, a permanent identifier given to documents.

    • eid* The Electronic identifier is for electronic journals that also appear in print. This number replaces the page number, and is used to find the article within the printed volume. Sometimes also called citation number.

    • contents* A table of contents

    • copyright* Copyright information.

    • ISBN* The International Standard Book Number.

    • ISSN* The International Standard Serial Number. Used to identify a journal.

    • keywords Key words used for searching or possibly for annotation.

    • language* The language the document is in.

    • location* A location associated with the entry, such as the city in which a conference took place.

    • LCCN* The Library of Congress Control Number. I've also seen this as lib-congress.

    • mrnumber* The number of Mathematical Reviews.

    • price* The price of the document.

    • size* The physical dimensions of a work.

    • URL The WWW Uniform Resource Locator that points to the item being referenced.

    To help in managing your bibliography, and extend the features of BibTeX, JabRef defines some specific fields:

    • External files

    • General fields

    • Owner

    You can create new fields by editing (or creating) entry types.

    • 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})}.

    • Reference documentation about BibTeX

    • Tame the BeaST - The B to X of BibTxX - long manual explaining the workings of BibTeX, the BibTeX format, and the available entry types with required and optional fields.

    • BibTeX tips and FAQ

    • https://github.com/lvilnis/BibtexParser/tree/master/inputs

    • https://github.com/environmentalinformatics-marburg/jabref

    • http://www.math.uiuc.edu/K-theory/aux/K-theory.bib (large file > 6000 publications)

    • http://mirrors.ctan.org/macros/latex/contrib/biblatex/bibtex/bib/biblatex/biblatex-examples.bib

    • http://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/macros/latex/contrib/biblatex/bibtex/bib/biblatex/biblatex-examples.bib

    • https://github.com/JabRef/jabref/tree/master/src/test/resources/testbib

    • http://texdoc.net/pkg/btxdoc

    • http://maverick.inria.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html

    • http://ftp.fau.de/ctan/macros/latex/contrib/biblatex/doc/biblatex.pdf

    • https://github.com/plk/biblatex

    • https://github.com/ambs/Text-BibTeX

    • https://github.com/lvilnis/BibtexParser

    • https://github.com/sciunto-org/python-bibtexparser

    JabRef's conventions

    Fields in the header of a bib file

    Encoding

    Shared Id

    SQL database
    auto save

    Standard BibTeX fields

    Non-standard fields

    JabRef-specific fields

    Define your own fields

    Hints on fields

    Further information resources

    BibTeX files

    BibLatex files

    Bib(La)TeX files in the JabRef repository

    Good references for the BibTex "standard"

    BibLaTex standard

    BibTeX parser

    If the key is not unique in the current database, it is made unique by adding one of the letters a-z until a unique key is found. Thus, the labels might look like:

    Yared1998 Yared1998a Yared1998b

    Several special field markers are offered, which extract only a specific part of a field. Feel free to suggest new special field markers.

    • [auth]: The last name of the first author

    • [authors]: The last name of all authors

    • [authorLast]: The last name of the last author

    • [authorsN]: The last name of up to N authors. If there are more authors, “EtAl” is appended.

    • [authorsAlpha]: Corresponds to the BibTeX style “alpha”. One author: First three letters of the last name. Two to four authors: First letters of last names concatenated. More than four authors: First letters of last names of first three authors concatenated. “+” at the end.

    • [authIniN]: The beginning of each author's last name, using no more than N characters.

    • [authorIni]: The first 5 characters of the first author's last name, and the last name initials of the remaining authors.

    • [authN]: The first N characters of the first author's last name

    • [authN_M]: The first N characters of the Mth author's last name

    • [auth.auth.ea]: The last name of the first two authors, and “.ea” if there are more than two.

    • [auth.etal]: The last name of the first author, and the last name of the second author if there are two authors or “.etal” if there are more than two.

    • [authEtAl]: The last name of the first author, and the last name of the second author if there are two authors or “EtAl” if there are more than two. This is similar to auth.etal. The difference is that the authors are not separated by “.” and in case of more than 2 authors “EtAl” instead of “.etal” is appended.

    • [authshort]: The last name if one author is given; the first character of up to three authors' last names if more than one author is given. A plus character is added, if there are more than three authors.

    • [authForeIni]: The forename initial of the first author.

    • [authorLastForeIni]: The forename initial of the last author.

    Note: If there is no author (as in the case of an edited book), then all of the above [auth...] markers will use the editor(s) (if any) as a fallback. Thus, the editor(s) of a book with no author will be treated as the author(s) for label-generation purposes. If you do not want this behaviour, i.e. you require a marker which expands to nothing if there is no author, use pureauth instead of auth in the above codes. For example, [pureauth], or [pureauthors3].

    • [edtr]: The last name of the first editor

    • [edtrIniN]: The beginning of each editor's last name, using no more than N characters

    • [editors]: The last name of all editors

    • [editorLast]: The last name of the last editor

    • [editorIni]: The first 5 characters of the first editor's last name, and the last name initials of the remaining editors.

    • [edtrN]: The first N characters of the first editor's last name

    • [edtrN_M]: The first N characters of the Mth editor's last name

    • [edtr.edtr.ea]: The last name of the first two editors, and “.ea” if there are more than two.

    • [edtrshort]: The last name if one editor is given; the first character of up to three editors' last names if more than one editor is given. A plus character is added, if there are more than three editors.

    • [edtrForeIni]: The forename initial of the first editor.

    • [editorLastForeIni]: The forename initial of the last editor.

    • [shorttitle]: The first 3 words of the title, ignoring any function words (see below). For example, An awesome paper on JabRef becomes AwesomePaperJabref.

    • [veryshorttitle]: The first word of the title, ignoring any function words (see below). For example, An awesome paper on JabRef becomes Awesome.

    • [camel]: Capitalize and concatenate all the words of the title. For example, An awesome paper on JabRef becomes AnAwesomePaperOnJabref.

    • [title]: Capitalize all the significant words of the title, and concatenate them. For example, An awesome paper on JabRef becomes AnAwesomePaperonJabref.

    JabRef considers the following words to be function words: "a", "an", "the", "above", "about", "across", "against", "along", "among", "around", "at", "before", "behind", "below", "beneath", "beside", "between", "beyond", "by", "down", "during", "except", "for", "from", "in", "inside", "into", "like", "near", "of", "off", "on", "onto", "since", "to", "toward", "through", "under", "until", "up", "upon", "with", "within", "without", "and", "but", "for", "nor", "or", "so", "yet".

    • [firstpage]: The number of the first page of the publication (Caution: this will return the lowest number found in the pages field, since BibTeX allows 7,41,73--97 or 43+.)

    • [pageprefix]: The non-digit prefix of pages (like "L" for L7) or "" if no non-digit prefix exists (like "" for 7,41,73--97) .

    • [keywordN]: Keyword number N from the “keywords” field, assuming keywords are separated by commas or semicolons.

    • [lastpage]: The number of the last page of the publication (See the remark on firstpage)

    • [shortyear]: The last 2 digits of the publication year

    A field name (or one of the above pseudo-field names) may optionally be followed by one or more modifiers.

    The modifiers can be divided into the categories converters (such as for converting from HTML to LaTeX), case changers (such as for conversion to lower case), and others. Click here for a comprehensive list of available modifiers.

    Generally, modifiers are applied in the order they are specified. In the following, we present a list of the most common modifiers alongside a short explanation:

    • :abbr: Abbreviates the text produced by the field name or special field marker. Only the first character and subsequent characters following white space will be included. For example:

      • [journal:abbr] would from the journal name “Journal of Fish Biology” produce “JoFB”.

      • [title:abbr] would from the title “An awesome paper on JabRef” produce “AAPoJ”.

      • [camel:abbr] would from the title “An awesome paper on JabRef” produce “AAPOJ”.

    • :lower: Forces the text inserted by the field marker to be in lowercase. For example, [auth:lower] expands the last name of the first author in lowercase.

    • :upper: Forces the text inserted by the field marker to be in uppercase. For example, [auth:upper] expands the last name of the first author in uppercase.

    • :capitalize: Changes the first character of each word to uppercase, all other characters are converted to lowercase. For example, an example title will be converted to An Example Title

    • :titlecase: Changes the first character of all normal words to uppercase, all function words (see above) are converted to lowercase. Example: example title with An function Word will be converted to Example Title with an Function Word

    • :sentencecase: Changes the first character of the first word to uppercase, all remaining words are converted to lowercase. Example: an Example Title will be converted to An example title

    • :(x): The string between the parentheses will be inserted if the field marker preceding this modifier resolves to an empty value. The placeholder x may be any string. For instance, the marker [volume:(unknown)] will return the entry's volume if set, and the string unknown if the entry's volume field is not set.

    After the key pattern has been applied to produce a key, you can choose to have the key generator search for occurrences of a specific regular expression, and replace it with a string. The regular expression and replacement string are entered in the text fields below the list of key patterns. If the replacement string is empty, matches of the regular expression will simply be removed from the generated key. For instance, \p{Punct} or [:/%] can be replaced by nothing to remove unwanted characters from the key. This may be useful when naming PDFs according to BibTeX keys.

    To change the pattern to [authors]:[camel], execute the following steps:

    1. Open the preferences

    2. Navigate to "General"

    3. Untick "Enforce legal characters in BibTeX keys". Note that this is only necessary if you wish to have colons be present in the generated key.

    4. Navigate to "BibTeX key generator"

    5. Change the default pattern to [authors]:[camel].

    6. Press "OK"

    Or, if you are using JabRef 5: 6. Press "enter" (forgetting to do this is a leading cause of puzzlement) 7. Click "Save"

    Some of the key patterns shown below were added at JabRef 5.0

    Key patterns

    Default key pattern

    Special field markers

    Author-related key patterns

    Editor-related key patterns

    Title-related key patterns

    Other key patterns

    Modifiers

    Regular expression replace

    How to configure

    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
    search panel
    syntax
    Use the BIB file location as primary file directory
    Main file directory
    string editor
    Quality and grading
    Time stamp
    BibTeX format according to Wikibook
    BibTeX format according to Wikipedia
    http://mirrors.ircam.fr/pub/CTAN/biblio/bibtex/contrib/test/test.bib
    Preferences - Import - Choose pattern
    Override default file directories

    Installation

    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.

    • Installation Commands

    • - redirects to the preferred place to download JabRef

    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 , choose the installer and run it. On Windows, you can use the and execute choco install jabref to get the latest version. On Ubuntu, you can use snap install jabref to get the latest stable version .

    In case, you want to take advantage of the , you can use pre-built binaries crafted from the latest development branch.

    To use the prebuilt binaries, visit 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

    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 . JavaFX is included since Java 1.8.0_60. The other official support for JavaFX is with the external library . 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 . For Ubuntu 16.04 LTS, 18.04 LTS and 20.04 LTS head to the section .

    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:

    1. Download the Linux files (e.g. Linux_X64) from

    2. 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)

    Have a look for further .

    Just install JavaFX by executing sudo apt-get install openjfx.

    For Ubuntu 18.04 and newer, openjfx which is currently not supported by JabRef. Hence, use an older version (does not work with Ubuntu 20.04 anymore):

    1. If you accidently installed the new version, remove it with sudo apt purge openjfx.

    2. Install an older version with sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2.

    3. To prevent the software updater from installing the newer not supported version, mark it to be not updated with

    This also works for Linux Mint 19.1 Tessa which is based on Ubuntu 18.04.

    Using the ppa

    1. Add repository: sudo sh -c 'echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" >> /etc/apt/sources.list'

    2. Add GPG key: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

    3. Update package list: sudo apt-get update

    Based on:

    Directly from Oracle

    1. Download tag.gz-file from the site

    2. Navigate to the folder where you downloaded the tar.gz-file

    3. Create package with make-jpkg jdk-[Version]-linux-x64.tar.gz including the most recent Java version instead of[Version]

    1. Download rpm-file from the site

    2. Navigate to the folder where you downloaded the rpm-file

    3. Install: rpm -ivh jdk-8u101-linux-x64.rpm

    Recent JabRef builds are available at .

    1. Install OpenJDK: sudo dnf install java-1.8.0-openjdk

    2. Install JavaFX (actually OpenJFX): sudo dnf install openjfx java-1.8.0-openjdk-openjfx

    3. Download the JabRef-[version].jar from the .

    Warning: To install JavaFX, it is not sufficient to just install the openjfx package. Warning: There is a 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 .

    1. Download rpm-file from the site

    2. 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 :

    1. : The current release

    2. : The latest version from the master branch

    Both packages install precompiled jar files and add a command and a .desktop file to the OS.

    The "modern" way:

    1. Install chocolatey by following the steps described at

    2. Execute choco install jre8

    At any time, you can update to the latest Java runtime environment by executing choco upgrade all.

    The "old" way:

    1. Download exe file from the site

    2. Run installation wizzard

    1. Download dmg-file from the site

    2. Run installation wizzard

    See the .

    Some users with macOS Sierra have reported freezes when using JabRef. Apparently, 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.

    Download statistics:

  • Development snapshots:

  • - contains historical releases only

  • 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

  • sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
    .
  • Install: sudo apt-get install oracle-java8-installer

  • Get root access with su

  • Install with dpkg -i oracle-java8-jdk_[Version].deb

  • Upgrade: rpm -Uvh jdk-8u101-linux-x64.rpm

  • Set alternatives: alternatives --config java (choose Oracle version)

  • In the folder of the jar-file run java -jar JabRef-[version].jar

    git clone --depth=10 https://github.com/JabRef/jabref
    cd jabref
    ./gradlew assemble
    ./gradlew jlink
    Java version "1.8.0_x"
    Java(TM) SE Runtime Environment (build 1.8.x)
    Java HotSpot(TM) Client  VM (build 25.x, mixed mode)
    Java version "1.8.0_x"
    Java(TM) SE Runtime Environment (build 1.8.x)
    Java HotSpot(TM) 64-Bit Server VM (build 25.x, mixed mode)
    OpenJDK version "1.8.0_x"
    OpenJDK Runtime Environment (build 1.8.0_x)
    OpenJDK Client VM (build 25.x, mixed mode)
    OpenJDK version "1.8.0_x"
    OpenJDK Runtime Environment (build 1.8.0_x)
    OpenJDK 64-Bit Server VM (build 25.x, mixed mode)

    Places do download JabRef

    Official Download Mirrors

    Other mirrors NOT updated/maintained by JabRef team

    Installation Commands

    JabRef 5.x

    Using Prebuilt Binaries

    Building From Source

    JabRef 4.x

    Verify Java Installation

    Ubuntu and Oracle Java

    Ubuntu and OpenJDK

    Debian Jessie 8 and Oracle Java

    Fedora 23 and Oracle Java

    Fedora and OpenJDK

    CentOS 6 or 7 and Oracle Java

    openSUSE

    Arch and Manjaro

    Windows and Oracle Java

    Mac OS and Oracle Java

    Troubleshooting

    Freezes when running JabRef

    JabRef and OpenOffice/LibreOffice integration

    JabRef 5.x
    JabRef 4.x
    Troubleshooting
    Freezes when running JabRef
    JabRef and OpenOffice/LibreOffice integration
    http://downloads.jabref.org/
    http://www.fosshub.com/JabRef.html
    https://github.com/JabRef/jabref/releases
    http://www.computerbild.de/download/JabRef-11693358.html
    http://filehippo.com/de/download_jabref/
    http://www.netzwelt.de/download/12279-jabref.html
    https://downloads.jabref.org
    chocolatey package manager
    from snapcraft
    latest features
    http://builds.jabref.org/master/
    Setting up a workspace
    Oracle Java 8
    OpenJDK
    OpenJFX
    instructions
    Installation Commands
    https://java.com/en/download/linux_manual.jsp
    instructions
    uses the Java version 11
    http://tecadmin.net/install-java-8-on-debian/
    Java SE Development Kit 8 Downloads
    Java SE Development Kit 8 Downloads
    https://build.opensuse.org/package/show/home:cornell_vrdc/jabref3
    JabRef Website
    bug
    issue 4473
    Java SE Development Kit 8 Downloads
    OpenJDK
    java-openjfx
    Arch User Repository (AUR)
    jabref
    jabref-latest
    GitHub
    https://chocolatey.org/install
    Java SE Development Kit 8 Downloads
    Java SE Development Kit 8 Downloads
    FAQs
    adding a host mapping for 127.0.0.1
    General preferences
    http://www.somsubhra.com/github-release-stats/?username=JabRef&repository=jabref
    http://www.macupdate.com/app/mac/19869/jabref
    http://www.heise.de/download/jabref.html
    https://builds.jabref.org/master/
    http://filehippo.com/de/download_jabref/
    https://sourceforge.net/projects/jabref/files/
    Options Preferences

    Custom export filters

    JabRef allows you to define and use your own export filters, in the same way as the standard export filters are defined. An export filter is defined by one or more layout files, which with the help of a collection of built-in formatter routines specify the format of the exported files. Your layout files must be prepared in a text editor outside of JabRef.

    The custom export format of JabRef is an alternative to the Citation Style Language, which is an XML-based format to describe bibliographic rendering.

    Existing public files are collected at https://layouts.jabref.org.

    Adding a custom export filter

    The only requirement for a valid export filter is the existence of a file with the extension .layout. To add a new custom export filter, open the dialog box Options → Manage custom exports, and click Add new. A new dialog box will appear, allowing you to specify a name for the export filter (which will appear as one of the choices in the File type dropdown menu of the file dialog when you use the File → Export menu choice in the JabRef window), the path to the .layout file, and the preferred file extension for the export filter (which will be the suggested extension in the file dialog when you use the export filter). Note that if you intend to use the custom export filter also for "Copy...->Export to Clipboard" in the maintable, the extension must be one of the following: txt, rtf, rdf, xml, html, htm, csv, or ris.

    To see examples of how export filters are made, look for the package containing the layout files for the standard export filters on our download page.

    Regarding tool support, there is the to quickly create export filters.

    Let us assume that we are creating an HTML export filter. While the export filter only needs to consist of a single .layout file, which in this case could be called html.layout, you may also want to add two files called html.begin.layout and html.end.layout. The former contains the header part of the output, and the latter the footer part. JabRef will look for these two files whenever the export filter is used, and if found, either of these will be copied verbatim to the output before or after the individual entries are written.

    Note that these files must reside in the same directory as html.layout, and must be named by inserting .begin and .end, respectively. In our example export filter, these could look like the following:

    html.begin.layout: <!DOCTYPE html><html> <body style="color:#275856; font-family: Arial, sans-serif;">

    html.end.layout: </body></html>

    The file html.layout provides the default template for exporting one single entry. If you want to use different templates for different entry types, you can do this by adding entry-specific .layout files. These must also reside in the same directory as the main layout file, and are named by inserting .entrytype into the name of the main layout file. The entry type name must be in all lowercase. In our example, we might want to add a template for book entries, and this would go into the file html.book.layout. For a PhD thesis we would add the file html.phdthesis.layout, and so on. These files are similar to the default layout file, except that they will only be used for entries of the matching type. Note that the default file can easily be made general enough to cover most entry types in most export filters.

    Layout files are created using a simple markup format where commands are identified by a preceding backslash. All text not identified as part of a command will be copied verbatim to the output file.

    An arbitrary word preceded by a backslash, e.g. \author, \editor, \title or \year, will be interpreted as a reference to the corresponding field, which will be copied directly to the output.

    Often there will be a need for some preprocessing of the field contents before output. This is done using a field formatter - a java class containing a single method that manipulates the contents of a field.

    A formatter is used by inserting the \format command followed by the formatter name in square braces, and the field command in curly braces, e.g.:

    \format[ToLowerCase]{\author}

    You can also specify multiple formatters separated by commas. These will be called sequentially, from left to right, e.g.

    \format[ToLowerCase,HTMLChars]{\author}

    will cause the formatter ToLowerCase to be called first, and then HTMLChars will be called to format the result. You can list an arbitrary number of formatters in this way.

    The argument to the formatters, withing the curly braces, does not have to be a field command. Instead, you can insert normal text, which will then be passed to the formatters instead of the contents of any field. This can be useful for some fomatters, e.g. the CurrentDate formatter (described below).

    Some formatters take an extra argument, given in parentheses immediately after the formatter name. The argument can be enclosed in quotes, which is necessary if it includes the parenthesis characters. For instance, \format[Replace("\s,_")]{\journal} calls the Replace formatter with the argument \s,_ (which results in the "journal" field after replacing all whitespace by underscores).

    See below for a list of built-in export formatters.

    Some static output might only make sense if a specific field is set. For instance, say we want to follow the editor names with the text (Ed.). This can be done with the following text:

    \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.)

    However, if the editor field has not been set - it might not even make sense for the entry being exported - the (Ed.) would be left hanging. This can be prevented by instead using the \begin and \end commands:

    \begin{editor} \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.) \end{editor}

    The \begin and \end commands make sure the text in between is printed if and only if the field referred in the curly braces is defined for the entry being exported.

    A conditional block can also be dependent on more than one field, and the content is only printed when simple boolean conditions are satisfied. Three boolean operators are provided:

    • AND operator : &, &&

    • OR operator : |, ||

    For example, to output text only if both year and month are set, use a block like the following: \begin{year&&month}Month: \format[HTMLChars]{\month}\end{year&&month} which will print "Month: " plus the contents of the month field, but only if also the year field is defined.

    As an example for the usage of the NOT operator, consider the following: \begin{!year}\format[HTMLChars]{(no year)}\end{!year} Here, "no year" is printed as output text if no year field is defined.

    Note: Use of the \begin and \end commands is a key to creating layout files that work well with a variety of entry types.

    If you wish to separate your entries into groups based on a certain field, use the grouped output commands. Grouped output is very similar to conditional output, except that the text in between is printed only if the field referred in the curly braces has changed value.

    For example, let's assume I wish to group by keyword. Before exporting the file, make sure you have sorted your entries based on keyword. Now use the following commands to group by keyword:

    \begingroup{keywords}New Category: \format[HTMLChars]{\keywords} \endgroup{keywords}

    JabRef provides the following set of formatters:

    • Authors : this formatter provides formatting options for the author and editor fields; for detailed information, see below. It deprecates a range of dedicated formatters provided in versions of JabRef prior to 2.7.

    • CreateBibORDFAuthors : formats authors for according to the requirements of the Bibliographic Ontology (bibo).

    To accommodate for the numerous citation styles, the Authors formatter allows flexible control over the layout of the author list. The formatter takes a comma-separated list of options, by which the default values can be overridden. The following option/value pairs are currently available, where the default values are given in curly brackets.

    AuthorSort = [ {FirstFirst} | LastFirst | LastFirstFirstFirst ] specifies the order in which the author names are formatted.

    • FirstFirst : first names are followed by the surname.

    • LastFirst : the authors' surnames are followed by their first names, separated by a comma.

    • LastFirstFirstFirst

    AuthorAbbr = [ FullName | LastName | {Initials} | InitialsNoSpace | FirstInitial | MiddleInitial ] specifies how the author names are abbreviated.

    • FullName : shows full author names; first names are not abbreviated.

    • LastName : show only surnames, first names are removed.

    • Initials

    AuthorPunc = [ {FullPunc} | NoPunc | NoComma | NoPeriod ] specifies the punctuation used in the author list when AuthorAbbr is used

    • FullPunc : no changes are made to punctuation.

    • NoPunc : all full stops and commas are removed from the author name.

    • NoComma

    AuthorSep = [ {Comma} | And | Colon | Semicolon | Sep=<string> ] specifies the separator to be used between authors. Any separator can be specified, with the Sep=<string> option. Note that appropriate spaces need to be added around string.

    AuthorLastSep = [ Comma | {And} | Colon | Semicolon | Amp | Oxford | LastSep=<string> ] specifies the last separator in the author list. Any separator can be specified, with the LastSep=<string> option. Note that appropriate spaces need to be added around string.

    AuthorNumber = [ {inf} | <integer> ] specifies the number of authors that are printed. If the number of authors exceeds the maximum specified, the authorlist is replaced by the first author (or any number specified by AuthorNumberEtAl), followed by EtAlString.

    AuthorNumberEtAl = [ {1} | <integer> ] specifies the number of authors that are printed if the total number of authors exceeds AuthorNumber. This argument can only be given after AuthorNumber has already been given.

    EtAlString = [ { et al.} | EtAl=<string> ] specifies the string used to replace multiple authors. Any string can be given, using EtAl=<string>

    If an option is unspecified, the default value (shown in curly brackets above) is used. Therefore, only layout options that differ from the defaults need to be specified. The order in which the options are defined is (mostly) irrelevant. So, for example,

    \format[Authors(Initials,Oxford)]{\author}

    is equivalent to

    \format[Authors(Oxford,Initials)]{\author}

    As mentioned, the order in which the options are specified is irrelevant. There is one possibility for ambiguity, and that is if both AuthorSep and AuthorLastSep are given. In that case, the first applicable value encountered would be for AuthorSep, and the second for AuthorLastSep. It is good practise to specify both when changing the default, to avoid ambiguity.

    Given the following authors, "Joe James Doe and Mary Jane and Bruce Bar and Arthur Kay" ,the Authors formatter will give the following results:

    Authors(), or equivalently, Authors(FirstFirst,Initials,FullPunc,Comma,And,inf,EtAl= et al.) J. J. Doe, M. Jane, B. Bar and A. Kay

    Authors(LastFirstFirstFirst,MiddleInitial,Semicolon) Doe, Joe J.; Mary Jane; Bruce Bar and Arthur Kay

    Authors(LastFirst,InitialsNoSpace,NoPunc,Oxford) Doe JJ, Jane M, Bar B, and Kay A

    Authors(2,EtAl= and others) J. J. Doe and others

    Most commonly available citation formats should be possible with this formatter. For even more advanced options, consider using the Custom Formatters detailed below.

    This formatter iterates over all file links, or all file links of a specified type, outputting a format string given as the first argument. The format string can contain a number of escape sequences indicating file link information to be inserted into the string.

    This formatter can take an optional second argument specifying the name of a file type. If specified, the iteration will only include those files with a file type matching the given name (case-insensitively). If specified as an empty argument, all file links will be included.

    After the second argument, pairs of additional arguments can be added in order to specify regular expression replacements to be done upon the inserted link information before insertion into the output string. A non-paired argument will be ignored. In order to specify replacements without filtering on file types, use an empty second argument.

    The escape sequences for embedding information are as follows:

    • \i : This inserts the iteration index (starting from 1), and can be useful if the output list of files should be enumerated.

    • \p : This inserts the file path of the file link.

    • \f

    For instance, an entry could contain a file link to the file "/home/john/report.pdf" of the "PDF" type with description "John's final report". Using the WrapFileLinks formatter with the following argument:

    \format[WrapFileLinks(\i. \d (\p))]{\file}

    would give the following output:

    1. John's final report (/home/john/report.pdf)

    If the entry contained a second file link to the file "/home/john/draft.txt" of the "Text file" type with description 'An early "draft"', the output would be as follows:

    1. John's final report (/home/john/report.pdf)

    2. An early "draft" (/home/john/draft.txt)

    If the formatter was called with a second argument, the list would be filtered. For instance:

    \format[WrapFileLinks(\i. \d (\p),,text file)]{\file}

    would show only the text file:

    1. An early "draft" (/home/john/draft.txt)

    If we wanted this output to be part of an XML styled output, the quotes in the file description could cause problems. Adding two additional arguments to translate the quotes into XML characters solves this:

    \format[WrapFileLinks(\i. \d (\p),,text file,",&quot;)]{\file}

    would give the following output:

    1. An early "draft" (/home/john/draft.txt)

    Additional pairs of replacements could be added.

    If none of the available formatters can do what you want to achieve, you can add your own by implementing the net.sf.jabref.export.layout.LayoutFormatter interface. If you insert your class into the net.sf.jabref.export.layout.format package, you can call the formatter by its class name only, like with the standard formatters. Otherwise, you must call the formatter by its fully qualified name (including package name). In any case, the formatter must be in your classpath when running JabRef.

    From JabRef 2.2, it is possible to define custom name formatters using the BibTeX-sty-file syntax. This allows ultimate flexibility, but is a cumbersome to write

    You can define your own formatter in the preference tab "Name Formatter" using the following format and then use it with the name given to it as any other formatter

    <case1>@<range11>@<format>@<range12>@<format>@<range13>...@@ <case2>@<range21>@... and so on.

    This format first splits the task to format a list of author into cases depending on how many authors there are (this is since some formats differ depending on how many authors there are). Each individual case is separated by @@ and contains instructions on how to format each author in the case. These instructions are separated by a @.

    Cases are identified using integers (1, 2, 3, etc.) or the character * (matches any number of authors) and will tell the formatter to apply the following instructions if there are a number of less or equal of authors given.

    Ranges are either <integer>..<integer>, <integer> or the character * using a 1 based index for indexing authors from the given list of authors. Integer indexes can be negative to denote them to start from the end of the list where -1 is the last author.

    For instance with an authorlist of "Joe Doe and Mary Jane and Bruce Bar and Arthur Kay":

    • 1..3 will affect Joe, Mary and Bruce

    • 4..4 will affect Arthur

    • * will affect all of them

    The <format>-strings use the BibTeX formatter format:

    The four letters v, f, l, j indicate the name parts von, first, last, jr which are used within curly braces. A single letter v, f, l, j indicates that the name should be abbreviated. If one of these letters or letter pairs is encountered JabRef will output all the respective names (possibly abbreviated), but the whole expression in curly braces is only printed if the name part exists.

    For instance if the format is "{ll} {vv {von Part}} {ff}" and the names are "Mary Kay and John von Neumann", then JabRef will output "Kay Mary" (with two space between last and first) and "Neuman von von Part John".

    I give two examples but would rather point you to the BibTeX documentation.

    Small example: "{ll}, {f.}" will turn "Joe Doe" into "Doe, J."

    Large example:

    To turn:

    "Joe Doe and Mary Jane and Bruce Bar and Arthur Kay"

    into

    "Doe, J., Jane, M., Bar, B. and Kay, A."

    you would use

    1@*@{ll}, {f}.@@2@1@{ll}, {f}.@2@ and {ll}, {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}.@-1@ and {ll}, {f}.

    NOT operator : !
    CreateDocBookAuthors
    : formats the author field in DocBook style.
  • CreateDocBookEditors : formats the editor field in DocBook style.

  • CurrentDate : outputs the current date. With no argument, this formatter outputs the current date and time in the format "yyyy.MM.dd hh:mm:ss z" (date, time and time zone). By giving a different format string as argument, the date format can be customized. For example \format[CurrentDate]{yyyy.MM.dd} will give the date only, e.g. 2005.11.30.

  • DateFormatter : formats a date. With no argument, the date is given in ISO-format (yyyy-MM-dd), which is also the expected format of the input. The argument may contain yyyy, MM, and dd in any combination. For example \format[DateFormatter(MM/yyyy)]{\date} will output 07/2016 if the date field contains 2016-07-15.

  • Default : takes a single argument, which serves as a default value. If the string to format is non-empty, it is output without changes. If it is empty, the default value is output. For instance, \format[Default(unknown)]{\year} will output the entry's year if set, and "unknown" if no year is set.

  • DOIStrip : strips any prefixes from the DOI string.

  • DOICheck : provides the full url for a DOI link.

  • EntryTypeFormatter : camel case of entry types, so "inbook" -> "InBook".

  • FileLink(filetype) : if no argument is given, this formatter outputs the first external file link encoded in the field. To work, the formatter must be supplied with the contents of the "file" field.

    This formatter takes the name of an external file type as an optional argument, specified in parentheses after the formatter name. For instance, \format[FileLink(pdf)]{\file} specifies pdf as an argument. When an argument is given, the formatter selects the first file link of the specified type. In the example, the path to the first PDF link will be output.

  • FirstPage : returns the first page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "345".

  • FormatChars : This formatter converts LaTeX character sequences their equicalent unicode characters and removes other LaTeX commands without handling them.

  • FormatPagesForHTML : replaces "--" with "-".

  • FormatPagesForXML : replaces "--" with an XML en-dash.

  • GetOpenOfficeType : returns the number used by the OpenOffice.org bibliography system (versions 1.x and 2.x) to denote the type of this entry.

  • HTMLChars : replaces TeX-specific special characters (e.g. {\"{a}} or {\sigma}) with their HTML representations, and translates LaTeX commands \emph, \textit, \textbf, \texttt, \underline, \textsuperscript, \textsubscript, \sout into HTML equivalents.

  • HTMLParagraphs : interprets two consecutive newlines (e.g. \n \n) as the beginning of a new paragraph and creates paragraph-html-tags accordingly.

  • IfPlural : outputs its first argument if the input field looks like an author list with two or more names, or its second argument otherwise. E.g. \format[IfPlural(Eds.,Ed.)]{\editor} will output "Eds." if there is more than one editor, and "Ed." if there is only one.

  • JournalAbbreviator : The given input text is abbreviated according to the journal abbreviation lists. If no abbreviation for input is found (e.g. not in list or already abbreviated), the input will be returned unmodified. For instance, when using \format[JournalAbbreviator]{\journal}, "Physical Review Letters" gets "Phys. Rev. Lett."

  • LastPage : returns the last page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "360".

  • NoSpaceBetweenAbbreviations : LayoutFormatter that removes the space between abbreviated First names. Example: J. R. R. Tolkien becomes J.R.R. Tolkien.

  • NotFoundFormatter : Formatter used to signal that a formatter hasn't been found. This can be used for graceful degradation if a layout uses an undefined format.

  • Number : outputs the 1-based sequence number of the current entry in the current export. This formatter can be used to make a numbered list of entries. The sequence number depends on the current entry's place in the current sort order, not on the number of calls to this formatter.

  • Ordinal : replaces numbers with ordinals so 1 is replaced with 1st etc.

  • RemoveBrackets : removes all curly brackets "{" or "}".

  • RemoveBracketsAddComma : removes all curly brackets "{" or "}". The closing curly bracket is replaced by a comma.

  • RemoveLatexCommands : removes LaTeX commands like \em, \textbf, etc. If used together with HTMLChars or XMLChars, this formatter should be called last.

  • RemoveTilde : replaces the tilde character used in LaTeX as a non-breakable space by a regular space. Useful in combination with the NameFormatter discussed in the next section.

  • RemoveWhitespace : removes all whitespace characters.

  • Replace(regexp,replacewith) : does a regular expression replacement. To use this formatter, a two-part argument must be given. The parts are separated by a comma. To indicate the comma character, use an escape sequence: ,

    The first part is the regular expression to search for. Remember that any commma character must be preceded by a backslash, and consequently a literal backslash must be written as a pair of backslashes. A description of Java regular expressions can be found at vogella's repository.

    The second part is the text to replace all matches with.

  • RisAuthors : to be documented.

  • RisKeywords : to be documented.

  • RisMonth : to be documented.

  • RTFChars : replaces TeX-specific special characters (e.g. {^a} or {"{o}}) with their RTF representations, and translates LaTeX commands \emph, \textit, \textbf into RTF equivalents.

  • ToLowerCase : turns all characters into lower case.

  • ToUpperCase : turns all characters into upper case.

  • WrapContent : This formatter outputs the input value after adding a prefix and a postfix, as long as the input value is non-empty. If the input value is empty, an empty string is output (the prefix and postfix are not output in this case). The formatter requires an argument containing the prefix and postix separated by a comma. To include the comma character in either, use an escape sequence (,).

  • WrapFileLinks : See below.

  • XMLChars : replaces TeX-specific special characters (e.g. {^a} or {"{o}}) with their XML representations.

  • : the first author is formatted as LastFirst, the subsequent authors as FirstFirst.
    : all first names are abbreviated.
  • InitialsNospace : as Initials, with any spaces between initials removed.

  • FirstInitial : only first initial is shown.

  • MiddleInitial : first name is shown, but all middle names are abbreviated.

  • : all commas are removed from the author name.
  • NoPeriod : all full stops are removed from the author name.

  • : This inserts the name of the file link's type.
  • \x : This inserts the file's extension, if any.

  • \d : This inserts the file link's description, if any.

  • 2..-1 will affect Mary, Bruce and Arthur

    Creating the export filter

    Layout files

    The layout file format

    Field commands

    Field formatters

    Conditional output

    Grouped output

    Built-in export formatters

    The Authors formatter

    Examples

    The WrapFileLinks formatter

    Custom formatters

    Using Custom Name Formatters

    Export-Filter Editor for Jabref
    BibTeX key generator preferences - authors camel
    General preferences - unticked
    BibTeX key generator preferences

    OpenOffice/LibreOffice integration

    This feature offers an interface for inserting citations and formatting a Bibliography in an OpenOffice or LibreOffice Writer document from JabRef.

    Throughout this help document, whenever the name OpenOffice is used, it can be interchanged with LibreOffice.

    To communicate with OpenOffice, JabRef must first connect to a running OpenOffice instance. You need to start OpenOffice and enter your document before connecting from JabRef. JabRef needs to know the location of your OpenOffice executable (soffice.exe on Windows, and soffice on other platforms), and the directory where several OpenOffice jar files reside. If you connect by clicking the Connect button, JabRef will try to automatically determine these locations. If this does not work, you need to connect using the Manual connect button, which will open a window asking you for the needed locations.

    After the connection has been established, you can insert citations by selecting one or more entries in JabRef and using the Push to OpenOffice button in the dropdown menu of JabRef's toolbar, or by using the appropriate button in the OpenOffice panel in the side pane. This will insert citations for the selected entries at the current cursor position in the OpenOffice document, and update the bibliography to contain the full reference.

    Note: JabRef does not use OpenOffice's built-in bibliography system, because of the limitations of that system. A document containing citations inserted from JabRef will not generally be compatible with other reference managers such as Bibus and Zotero.

    Two different types of citations can be inserted - either a citation in parenthesis, "(Author 2007)", or an in-text citation, "Author (2007)". This distinction is only meaningful if author-year citations are used instead of numbered citations, but the distinction will be preserved if you switch between the two styles.

    If you modify entries in JabRef after inserting their citations into OpenOffice, you will need to synchronize the bibliography. The Sync OO bibliography button will update all entries of the bibliography, provided their BibTeX keys have not been altered (JabRef encodes the BibTeX key into the reference name for each citation to keep track of which BibTeX key the original JabRef entry has).

    To customize the citation style you need to select a style file, or use one of the default styles. The style defines the format of citations and the format of the bibliography. You can use standard JabRef export formatters to process entry fields before they are sent to OpenOffice. Through the style file, the intention is to give as much flexibility in citation styles as possible. You can switch style files at any time, and use the Update button to refresh your bibliography to follow the new style.

    By clicking the Select style button you can bring up a window that allows selection of either the default style or an external style file. If you want to create a new style based on the default, you can click the View button to bring up the default style contents, which can be copied into a text editor and modified.

    To choose an external style file, you have two options. Either you can choose a style file directly, or you can set a style file directory. If you do the latter, you will see a list of styles from that directory (and subdirectories), and can choose one from that list.

    CAUTION: Please take care that your style file is saved using UTF-8 for character encoding. If you use another character encoding (even other unicode encodings such as UTF-16 or UTF-32), JabRef will not be able to process your style file.

    Here is an example style file:

    (Note that the layout for each entry type must be constrained to a single line in the style file - above, the lines are broken up to improve readability.)

    The PROPERTIES section describes global properties for the bibliography. The following table describes the available properties:

    Property

    Type

    Default value

    Description

    IsNumberEntries

    boolean

    false

    Determines the type of citations to use. If true, number citations will be used. If false, author-year citations will be used.

    The CITATION section describes the format of the citation markers inserted into the text.

    The following table gives a brief description of all the available citation properties. Properties that are not given in the style file will keep their default value.

    Property

    Type

    Default value

    Description

    AuthorField

    string

    author/editor

    BibTeX field containing author names. Can specify fallback field, e.g. author/editor

    If numbered entries are used, the BracketBefore and BracketAfter properties are the most important - they define which characters the citation number is wrapped in. The citation is composed as follows: [BracketBefore][Number][BracketAfter] where [Number] is the number of the citation, determined according to the ordering of the bibliography and/or the position of the citation in the text. If a citation refers to several entries, these will be separated by the string given in the property CitationSeparator (for instance, if CitationSeparator=;, the citation could look like [2;4;6]). If two or more of the entries have a series of consecutive numbers, the numbers can be grouped (for instance [2-4] for 2, 3 and 4 or [2;5-7] for 2, 5, 6 and 7). The property GroupedNumbersSeparator (default -) determines which string separates the first and last of the grouped numbers. The integer property MinimumGroupingCount (default 3) determines what number of consecutive numbers is required before entries are grouped. If MinimumGroupingCount=3, the numbers 2 and 3 will not be grouped, while 2, 3, 4 will be. If MinimumGroupingCount=0, no grouping will be done regardless of the number of consecutive numbers.

    If numbered entries are not used, author-year citations will be created based on the citation properties. A parenthesis citation is composed as follows: [BracketBefore][Author][YearSeparator][Year][BracketAfter] where [Author] is the result of looking up the field or fields given in the AuthorField property, and formatting a list of authors. The list can contain up to MaxAuthors names - if more are present, the list will be composed as the first author plus the text specified in the property EtAlString. If the property MaxAuthorsFirst is given, it overrides MaxAuthors the first time each citation appears in the text.

    If several, slash-separated, fields are given in the AuthorField property, they will be looked up successively if the first field is empty for the given BibTeX entry. In the example above, the "author" field will be used, but if empty, the "editor" field will be used as a backup.

    The names in the author list will be separated by the text given by the AuthorSeparator property, except for the last two names, which will be separated by the text given by AuthorLastSeparator. If the property AuthorLastSeparatorInText is given, it overrides the former for citations of the in-text type. This makes it possible to get citations like (Olsen & Jensen, 2008) and Olsen and Jensen (2008) for the same style.

    [Year] is the result of looking up the field or fields given in the [YearField] property.

    An in-text citation is composed as follows: [Author][InTextYearSeparator][BracketBefore][Year][BracketAfter] where [Author] and [Year] are resolved in exactly the same way as for the parenthesis citations.

    If two different cited sources have the same authors and publication year, and author-year citations are used, their markers will need modification in order to be distinguishable. This is done automatically by appending a letter after the year for each of the publications; 'a' for the first cited reference, 'b' for the next, and so on. For instance, if the author "Olsen" has two cited papers from 2005, the citation markers will be modified to (Olsen, 2005a) and (Olsen, 2005b). In the bibliography layout, the placement of the "uniquefier" letter is indicated explicitly by inserting the virtual field uniq.

    If several entries that have been "uniquefied" are cited together, they will be grouped in the citation marker. For instance, of the two entries in the example above are cited together, the citation marker will be (Olsen, 2005a, b) rather than Olsen, 2005a; Olsen, 2005b). The grouped uniquefier letters (a and b in our example) will be separated by the string specified by the UniquefierSeparator property.

    Author-year citations referring more than one entry will by default be sorted chronologically. If you wish them to be sorted alphabetically, the citation property MultiCiteChronological should be set to false..

    The LAYOUT section describes how the bibliography entry for each entry type in JabRef should appear. Each line should start with either the name of a BibTeX entry type, or the word default, followed by a '='. The default layout will be used for all entry types for which an explicit layout hasn't been given.

    The remainder of each line defines the layout, with normal text and spaces appearing literally in the bibliography entry. Information from the BibTeX entry is inserted by adding \field markers with the appropriate field name (e.g. \author for inserting the author names). Formatting information for the field can be included here, following JabRef's standard export layout syntax. Refer to JabRef's documentation on custom export filters for more information about which formatters are available and tooling hints.

    If author-year citations are used, you have to explicitly specify the position of the "uniquefier" letter that is added to distinguish similar-looking citations. This is done by including a marker for the virtual field uniq, typically right after the year (as shown in the example style file). The uniq field is automatically set correctly for each entry before its reference text is laid out.

    To indicate formatting in the bibliography, you can use the HTML-like tag pairs <b> </b>, <i> </i>, <sup> </sup> and <sub> </sub> to specify bold text, italic text, superscript and subscript, respectively.

    If you are using numbered citations, the number for each entry will be automatically inserted at the start of each entry in the reference list. By default, the numbers will be enclosed in the same brackets defined for citations. The optional citation properties BracketBeforeInList and BracketAfterInList override BracketBefore and BracketAfter if set. These can be used if you want different types of brackets (or no brackets) in the reference list. Note that these need not be brackets as such - they can be any combination of characters.

    • Make sure to save your Writer document in OpenDocument format (odt). Saving to Word format will lose your reference marks.

    • There is currently no support for footnote based citations.

    • The cursor may be poorly positioned after inserting a citation.

    • Copy-pasting the example style file directly from this page can give an unparseable file. To avoid this, instead download the example file from the link in the download section.

    • Make sure that libreoffice-java-common is installed on Linux for LibreOffice 5, otherwise important libraries are missing.

    • Open Office 4 will only work running under a 32-bit Java JRE/JDK on Windows because there is no 64-bit version of OpenOffice yet.

    Introduction

    Using the OpenOffice/LibreOffice interface

    NAME
    Example style file for JabRef-OpenOffice integration.
    
    JOURNALS
    Journal name 1
    Journal name 2
    
    PROPERTIES
    Title="References"
    IsSortByPosition="false"
    IsNumberEntries="false"
    ReferenceParagraphFormat="Default"
    ReferenceHeaderParagraphFormat="Heading 1"
    
    CITATION
    AuthorField="author/editor"
    YearField="year"
    MaxAuthors="3"
    MaxAuthorsFirst="3"
    AuthorSeparator=", "
    AuthorLastSeparator=" & "
    EtAlString=" et al."
    ItalicEtAl="true"
    YearSeparator=" "
    InTextYearSeparator=" "
    BracketBefore="["
    BracketAfter="]"
    BracketBeforeInList="["
    BracketAfterInList="]"
    CitationSeparator="; "
    UniquefierSeparator=","
    GroupedNumbersSeparator="-"
    MinimumGroupingCount="3"
    FormatCitations="false"
    CitationCharacterFormat="Default"
    MultiCiteChronological="false"
    PageInfoSeparator="; "
    
    LAYOUT
    article=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
    (<b>\year\uniq</b>). <i>\title</i>, \journal \volume\begin{pages} :
    \format[FormatPagesForHTML]{\pages}\end{pages}.
    
    book=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}\begin{editor}
    \format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.)\end{editor},
    <b>\year\uniq</b>. <i>\title</i>. \publisher, \address.
    
    incollection=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
    (<b>\year\uniq</b>). <i>\title</i>. In: \format[AuthorLastFirst,
    AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.), <i>\booktitle</i>, \publisher.
    
    inbook=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
    (<b>\year\uniq</b>). <i>\chapter</i>. In: \format[AuthorLastFirst,
    AuthorAbbreviator,AuthorAndsReplacer]{\editor} (Ed.), <i>\title</i>, \publisher.
    
    phdthesis=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
    (<b>\year\uniq</b>). <i>\title</i>, \school.
    
    default=\format[AuthorLastFirst,AuthorAbbreviator,AuthorAndsReplacer]{\author}
    (<b>\year\uniq</b>). <i>\title</i>, \journal \volume\begin{pages} :
    \format[FormatPagesForHTML]{\pages}\end{pages}.

    The style file

    Global properties

    Citation properties

    Reference list layout

    Known issues

    Export to Microsoft Word -- MS Office Bibliography XML format

    JabRef supports the MS Office Bibliography XML format for exporting and importing.

    • Howto: Export to Microsoft Word

    • Howto: Import from Microsoft Word

    As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.

    1. Export (selected) entries in JabRef and choose Office 2007 xml format

    2. Open Word, click on the References Tab

    3. Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)

    The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.

    More discussion at .

    See

    Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.

    BibTeX/BibLaTeX entry type
    XML entry type

    The field mapping for import and export is mostly the same, but there are some differences, as not all field exists in both formats. Additionally, some fields have to be treated differently during import/export.

    BibTeX/BibLaTeX
    XML field

    The following fields are BibTeX/BibLaTex only fields, they have no representation in office XML. In the resulting XML file they are represented with the prefix BIBTEX_

    BibTeX/BibLaTeX only fields
    XML representation

    The XML field SourceType contains the associated entry type from the first table, while the original BibTeX/BibLaTex entrytype is preserved in the field BIBTEX_ENTRY.

    The following fields are XML-only fields, they have no BibTeX/BibLaTex representation: In the resulting bib database they are represented with the prefix msbib-.

    BibTeX/BibLaTex represenation
    XML field

    The following fields are treated as follows during export:

    BibTeX/BibLaTeX representation
    XML field

    The following fields are treated as follows during import:

    BibTeX/BibLaTeX representation
    XML field

    Import from Microsoft Word -- MS Office Bibliography XML format

    JabRef supports the MS Office Bibliography XML format for exporting and importing.

    IsSortByPosition

    boolean

    false

    Determines how the bibliography is sorted. If true, the entries will be sorted according to the order in which they are cited. If false, the entries will be sorted alphabetically by authors.

    ReferenceParagraphFormat

    string

    Default

    Gives the name of the paragraph format to be used for the reference list. This format must be defined in your OpenOffice document.

    ReferenceHeaderParagraphFormat

    string

    Heading 1

    Gives the name of the paragraph format to be used for the headline of the reference list. This format must be defined in your OpenOffice document.

    Title

    string

    Bibliography

    The text to enter as the headline of the reference list.

    AuthorLastSeparator

    string

    &

    Text inserted between the two last author names.

    AuthorLastSeparatorInText

    string

    If specified, this property overrides AuthorLastSeparator for in-text citations such as Smith & Jones (2001).

    AuthorSeparator

    string

    ,

    Text inserted between author names except the last two.

    BracketAfter

    string

    ]

    The closing bracket of citations.

    BracketAfterInList

    string

    ]

    The closing bracket for citation numbering in the reference list.

    BracketBefore

    string

    [

    The opening bracket of citations.

    BracketBeforeInList

    string

    [

    The opening bracket for citation numbering in the reference list.

    CitationCharacterFormat

    string

    Default

    If FormatCitations is set to true, the character format with the name given by this property will be applied to citations. The character format must be defined in your OpenOffice document.

    CitationSeparator

    string

    ;

    Text inserted between items when a citation contains multiple entries, e.g. [Smith 2001; Jones 2002]

    EtAlString

    string

    et al.

    Text inserted after author names when not all authors are listed, e.g. [Smith et al. 2001]

    FormatCitations

    boolean

    false

    Determines whether formatting should be applied to citations. If true, a character format will be applied to the citations. The property CitationCharacterFormat controls which format should be applied, and the given format must be defined in your OpenOffice document. Any font settings and effects can be chosen within OpenOffice for your chosen character format.

    GroupedNumbersSeparator

    string

    -

    Text inserted between numbers when numbered citations are grouped, e.g. [4-6]

    InTextYearSeparator

    string

    Single Space

    Text inserted between author names and starting bracket before year in in-text citations.

    ItalicEtAl

    boolean

    true

    If true, the "et al." string in citation markers is italicized.

    MaxAuthors

    integer

    3

    The maximum number of authors to list in a citation that has appeared earlier in the document.

    MaxAuthorsFirst

    integer

    3

    The maximum number of authors to list in a citation when appearing for the first time.

    MinimumGroupingCount

    integer

    3

    The minimum number of consecutive entries a citation should contain before the numbers are grouped, e.g. [4-6] vs. [4; 5; 6].

    MultiCiteChronological

    boolean

    true

    If true, multiple entries in the same citation are sorted chronologically, otherwise they are sorted alphabetically.

    PageInfoSeparator

    string

    ;

    For citations with extra information, e.g. page numbers, this string is inserted between the year (for author-year citations) or the citation number (for numbered citations) and the extra information. E.g. the text between 2001 and p. 301 in [Smith 2001; p. 301].

    UniquefierSeparator

    string

    ,

    Text inserted between letters used to differentiate citations with similar authors and year. E.g. the text between a and b in [Smith 2001a, b].

    YearField

    string

    year

    The BibTeX field to get publication year from.

    YearSeparator

    string

    Single Space

    Text inserted between author names and year in parenthesis citations such as [Smith 2001].

    Special Export treatment
  • Special Import treatment

  • All entries are then available in the MS bibliography database

    incollection

    BookSection

    article

    JournalArticle

    inproceedings

    ConferenceProceedings

    conference

    ConferenceProceedings

    proceedings

    ConferenceProceedings

    collection

    ConferenceProceedings

    techreport

    Report

    manual

    Report

    mastersthesis

    Report

    phdthesis

    Report

    unpublished

    Report

    patent

    Patent

    misc

    Misc

    electronic

    ElectronicSource

    online

    InternetSite

    periodical

    ArticleInAPeriodical

    note

    Comments

    volume

    Volume

    language

    LCID

    edition

    Edition

    publisher

    Publisher

    booktitle

    BookTitle

    chapter

    ChapterNumber

    issue

    Issue

    school

    Department

    institution

    Institution

    doi

    DOI

    url

    url

    shorttitle

    ShortTitle

    pages

    Pages

    authors

    Authors

    editors

    Editors

    translator

    Translator

    bookauthor

    Bookauthor

    volumes

    NumberVolumes

    crossref

    BIBTEX_CrossRef

    howpublished

    BIBTEX_HowPublished

    affiliation

    BIBTEX_Affiliation

    contents

    BIBTEX_Contents

    copyright

    BIBTEX_Copyright

    price

    BIBTEX_Price

    size

    BIBTEX_Size

    intype

    BIBTEX_InType

    paper

    BIBTEX_Paper

    <BibTexEntryType>

    BIBTEX_Entry

    <BibTexEntryType>

    SourceType

    key (not BibTeX-Key)

    BIBTEX_KEY

    pubstate

    BITEX_Pubstate

    msbib-accessed

    Accessed (YearAccessed, MonthAccessed, DayAccessed)

    msbib-medium

    Medium

    msbib-recordingnumber

    RecordingNumber

    msbib-theater

    Theater

    msbib-distributor

    Distributor

    msbib-broadcaster

    Broadcaster

    msbib-station

    Station

    msbib-type

    Type

    msbib-court

    Court

    msbib-reporter

    Reporter

    msbib-casenumber

    CaseNumber

    msbib-abbreviatedcasenumber

    AbbreviatedCaseNumber

    msbib-productioncompany

    ProductionCompany

    msbib-producername

    producerNames

    msbib-composer

    composers

    msbib-conductor

    conductors

    msbib-performer

    performers

    msbib-writer

    writers

    msbib-director

    directors

    msbib-compiler

    compilers

    msbib-interviewer

    interviewers

    msbib-interviewee

    interviewees

    msbib-inventor

    inventors

    msbib-counsel

    counsels

    month

    Month

    date

    year, month, day (if date is in ISO 8601 form

    issue

    issue

    isbn

    StandardNumber

    issn

    StandardNumber

    lccn

    StandardNumber

    mrnumer

    StandardNumber

    address (if field contains at least one comma)

    City

    address (if field does not contain a comma)

    City, StateProvince, CountryRegion

    location (if field contains at least one comma)

    City

    location (if field does not contain a comma)

    City, StateProvince, CountryRegion

    <EntryType is thesis>

    ThesisType

    <EntryType is patent> number

    PatentNumber

    number (entry is not patent)

    Number

    Authors/Editors (single author/editor is enclosed in curly braces)

    Corporate

    book

    Book

    inbook

    BookSection

    booklet

    bibtexkey

    Tag

    title

    Title

    year

    series

    BIBTEX_Series

    abstract

    BIBTEX_Abstract

    keywords

    msbib-numberofvolume

    NumberVolumes

    msbib-periodical

    PeriodicalTitle

    msbib-day

    booktitle

    ConferenceName

    journal

    JournalName

    journaltitle

    organization

    ConferenceName

    journaltitle

    Journal

    location

    Howto: Export to Microsoft Word

    Howto: Import from Microsoft Word

    Entry Type Mappings

    Field mappings

    BibTeX/BibLaTeX only fields

    MS-Bib only fields

    Special Export treatment

    Special Import treatment

    Entry Type Mappings
    Field mappings
    BibTeX/BibLaTeX only fields
    MS-Bib only fields
    https://tex.stackexchange.com/a/351452/9075
    https://stackoverflow.com/a/4628718/873282

    BookSection

    Year

    BIBTEX_KeyWords

    Day

    JournalName

    City, StateProvince, CountryRegion

    Entry Type Mappings
  • Field mappings

    • BibTeX/BibLaTeX only fields

    • MS-Bib only fields

  • As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.

    1. Export (selected) entries in JabRef and choose Office 2007 xml format

    2. Open Word, click on the References Tab

    3. Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)

    4. All entries are then available in the MS bibliography database

    The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.

    More discussion at https://tex.stackexchange.com/a/351452/9075.

    See https://stackoverflow.com/a/4628718/873282

    Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.

    BibTeX/BibLaTeX entry type
    XML entry type

    book

    Book

    inbook

    BookSection

    booklet

    The field mapping for import and export is mostly the same, but there are some differences, as not all field exists in both formats. Additionally, some fields have to be treated differently during import/export.

    BibTeX/BibLaTeX
    XML field

    bibtexkey

    Tag

    title

    Title

    year

    The following fields are BibTeX/BibLaTex only fields, they have no representation in office XML. In the resulting XML file they are represented with the prefix BIBTEX_

    BibTeX/BibLaTeX only fields
    XML representation

    series

    BIBTEX_Series

    abstract

    BIBTEX_Abstract

    keywords

    The XML field SourceType contains the associated entry type from the first table, while the original BibTeX/BibLaTex entrytype is preserved in the field BIBTEX_ENTRY.

    The following fields are XML-only fields, they have no BibTeX/BibLaTex representation: In the resulting bib database they are represented with the prefix msbib-.

    BibTeX/BibLaTex represenation
    XML field

    msbib-numberofvolume

    NumberVolumes

    msbib-periodical

    PeriodicalTitle

    msbib-day

    The following fields are treated as follows during export:

    BibTeX/BibLaTeX representation
    XML field

    booktitle

    ConferenceName

    journal

    JournalName

    journaltitle

    The following fields are treated as follows during import:

    BibTeX/BibLaTeX representation
    XML field

    organization

    ConferenceName

    journaltitle

    Journal

    location

    Howto: Export to Microsoft Word
    Howto: Import from Microsoft Word

    Howto: Export to Microsoft Word

    Howto: Import from Microsoft Word

    Entry Type Mappings

    Field mappings

    BibTeX/BibLaTeX only fields

    MS-Bib only fields

    Special Export treatment

    Special Import treatment

    BookSection

    incollection

    BookSection

    article

    JournalArticle

    inproceedings

    ConferenceProceedings

    conference

    ConferenceProceedings

    proceedings

    ConferenceProceedings

    collection

    ConferenceProceedings

    techreport

    Report

    manual

    Report

    mastersthesis

    Report

    phdthesis

    Report

    unpublished

    Report

    patent

    Patent

    misc

    Misc

    electronic

    ElectronicSource

    online

    InternetSite

    periodical

    ArticleInAPeriodical

    Year

    note

    Comments

    volume

    Volume

    language

    LCID

    edition

    Edition

    publisher

    Publisher

    booktitle

    BookTitle

    chapter

    ChapterNumber

    issue

    Issue

    school

    Department

    institution

    Institution

    doi

    DOI

    url

    url

    shorttitle

    ShortTitle

    pages

    Pages

    authors

    Authors

    editors

    Editors

    translator

    Translator

    bookauthor

    Bookauthor

    volumes

    NumberVolumes

    BIBTEX_KeyWords

    crossref

    BIBTEX_CrossRef

    howpublished

    BIBTEX_HowPublished

    affiliation

    BIBTEX_Affiliation

    contents

    BIBTEX_Contents

    copyright

    BIBTEX_Copyright

    price

    BIBTEX_Price

    size

    BIBTEX_Size

    intype

    BIBTEX_InType

    paper

    BIBTEX_Paper

    <BibTexEntryType>

    BIBTEX_Entry

    <BibTexEntryType>

    SourceType

    key (not BibTeX-Key)

    BIBTEX_KEY

    pubstate

    BITEX_Pubstate

    Day

    msbib-accessed

    Accessed (YearAccessed, MonthAccessed, DayAccessed)

    msbib-medium

    Medium

    msbib-recordingnumber

    RecordingNumber

    msbib-theater

    Theater

    msbib-distributor

    Distributor

    msbib-broadcaster

    Broadcaster

    msbib-station

    Station

    msbib-type

    Type

    msbib-court

    Court

    msbib-reporter

    Reporter

    msbib-casenumber

    CaseNumber

    msbib-abbreviatedcasenumber

    AbbreviatedCaseNumber

    msbib-productioncompany

    ProductionCompany

    msbib-producername

    producerNames

    msbib-composer

    composers

    msbib-conductor

    conductors

    msbib-performer

    performers

    msbib-writer

    writers

    msbib-director

    directors

    msbib-compiler

    compilers

    msbib-interviewer

    interviewers

    msbib-interviewee

    interviewees

    msbib-inventor

    inventors

    msbib-counsel

    counsels

    JournalName

    month

    Month

    date

    year, month, day (if date is in ISO 8601 form

    issue

    issue

    isbn

    StandardNumber

    issn

    StandardNumber

    lccn

    StandardNumber

    mrnumer

    StandardNumber

    address (if field contains at least one comma)

    City

    address (if field does not contain a comma)

    City, StateProvince, CountryRegion

    location (if field contains at least one comma)

    City

    location (if field does not contain a comma)

    City, StateProvince, CountryRegion

    <EntryType is thesis>

    ThesisType

    <EntryType is patent> number

    PatentNumber

    number (entry is not patent)

    Number

    Authors/Editors (single author/editor is enclosed in curly braces)

    Corporate

    City, StateProvince, CountryRegion

    Special Export treatment
    Special Import treatment

    Comparison of the Medline (txt), Medline (XML), and RIS format

    The Medline (txt) format can be used by a simple text document. Here, you have to write the field names at the beginning of each line. The Medline (xml) format is a XML document. The field name has to be written between < and >. For further information visit https://www.nlm.nih.gov/bsd/licensee/elements_descriptions.html. Medline (txt) and Medline (XML) always take the type "article". RIS works similar to Medline (txt) with the difference that different fields are supported and the file extension is "ris".

    In other sources, you might encounter "MedlinePlain" as synonym for "Medline (txt)" and "Medline" as synonym for "Medline (xml)".

    Table with fields

    Field
    Medline (txt)
    Medline (XML)
    RIS

    ArticleDate

    Article Identifier

    AID

    Article

    Article Title

    ArticleTitle

    Author

    AU

    AuthorList

    AU/A1

    Author Identifier

    AUID

    Book Title

    BTI

    BT

    Chemical List

    ChemicalList

    Citation Subset

    CitationSubset

    Collection Title

    CTI

    Collaborators

    A3

    Comments Corrections List

    CommentsCorrectionsList

    Corporate Author

    CN

    Copyright Information

    CopyrightInformation

    Create Date

    CRDT

    Country

    Country

    Data Bank List

    DataBankList

    Date Completed

    DCOM

    DateCompleted

    Date Created

    DA

    DateCreated

    Date Last Revised

    LR

    DateRevised

    Date of Electronic Publication

    DEP

    Date of Publication

    DP

    Y2

    Delete Citation

    DeleteCitation

    DOI

    DOI

    Edition

    EN

    Editor and Full Editor Name

    FED

    ED

    End

    ER

    End Page

    EP

    Entrez Date

    EDAT

    Full Author

    FAU

    Full Personal Name as Subject

    FPS

    Gene Symbol

    GS

    General Note

    GN

    GeneralNote

    Grant List

    GrantList

    Grant Number

    GR

    Investigator Name and Full Investigator Name

    IR/FIR

    Investigator List

    InvestigatorList

    ISO Abbreviation

    ISOAbbreviation

    ISBN

    ISBN

    SN

    ISSN

    IS

    ISSN

    ISSN Linking

    ISSNLinking

    Issue

    IP

    Issue

    IS

    Journal Issue

    JournalIssue

    Journal Title

    JT

    Journal

    JO/JF/JA

    Journal Title Abbreviation

    TA

    Keywords

    KeywordList

    KW

    Language

    LA

    Language

    Location Identifier

    LID

    Manuscript Identifier

    MID

    Medline Title Abbreviation

    MedlineTA

    Medline Date

    MedlineDate

    MeSH Date

    MHDA

    Mesh Heading List

    MeshHeadingList

    MeSH Terms

    MH

    Misc

    M1-M3

    NLM Unique ID

    JID

    NlmUniqueID

    Note

    N1

    Number of References

    RF

    Other Abstract and other abstract language

    OAB/OABL

    OtherAbstract

    Other Copyright Information

    OCI

    Other ID

    OID

    OtherID

    Other Term

    OT

    Other Term Owner

    OTO

    Owner

    OWN

    Pagination

    PG

    Pagination

    Personal Name as Subject

    PS

    Personal Name as Subject List

    PersonalNameSubjectList

    Place of Publication

    PL

    Publication History Status

    PHST

    Publication Status

    PST

    Publication Type

    PT

    Publication Type List

    PublicationTypeList

    Publisher

    PB

    Publishing Date

    PubDate

    Publishing Model

    PUBM

    PubMed Central Identifier

    PMCR

    PubmMed Unique Identifier

    PMID

    PMID

    Registry Number

    RN

    Reprint

    RP

    Start Page

    SP

    Substance Name

    NM

    Supplemental Mesh List

    SupplMeshList

    Secondary Source ID

    SI

    Source

    SO

    Space Flight Mission

    SFM

    Status

    STAT

    Subset

    SB

    Title

    TI

    Title

    TI/T1

    Transliterated Title

    TT

    Type

    TY

    URL

    UR

    User Text

    U1-U3

    Volume

    VI

    Volume

    VL

    Volume Title

    VTI

    Vernacular Title

    VernacularTitle

    Year

    PY/Y1

    Abstract

    AB

    Abstract / AbstractText

    AB

    Affiliation

    AD

    Article Date