Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This information is outdated. Please help to improve it.
JabRef allows you to define and use your own importers, in very much the same way as the standard import filters are defined. An import filter is defined by one or more Java classes, which parse the contents of a file from an input stream and create BibTex entries. So with some basic Java programming you can add an importer for your favorite source of references or register a new, improved version of an existing importer. Also, this allows you to add compiled custom importers that you might have obtained e.g. from GitHub without rebuilding JabRef (see "Sharing your work" below).
Custom importers take precedence over standard importers. This way, you can override existing importers for the Autodetect and Command Line features of JabRef. Custom importers are ordered by name.
Make sure, you have a compiled custom import filter (one or more .class
files as described below) and the class files are in a directory structure according to their package structure. To add a new custom import filter, open the dialog box Options → Manage custom imports, and click Add from folder. A file chooser will appear, allowing you to select the classpath of your importer, i.e. the directory where the top folder of the package structure of your importer resides. In a second file chooser you select your importer class file, which must be derived from ImportFormat
. By clicking Select new ImportFormat Subclass, your new importer will appear in the list of custom import filters. All custom importers will appear in the File → Import → Custom Importers and File → Import and Append → Custom Importers submenus of the JabRef window.
Please note that if you move the class to another directory you will have to remove and re-add the importer. If you add a custom importer under a name that already exists, the existing importer will be replaced. Although in some cases it is possible to update an existing custom importer without restarting JabRef (when the importer is not on the classpath), we recommend restarting JabRef after updating an custom-importer. You can also register importers contained in a ZIP- or JAR-file, simply select the Zip- or Jar-archive, then the entry (class-file) that represents the new importer.
For examples and some helpful files on how to build your own importer, please check our download page.
Let us assume that we want to import files of the following form:
In your favorite IDE or text editor create a class derived from ImportFormat
that implements methods getFormatName()
, isRecognizedFormat
and importEntries()
. Here is an example:
Note that the example is in the default package. Suppose you have saved it under /mypath/SimpleCSVImporter.java
. Also suppose the JabRef-2.0.jar is in the same folder as SimpleCSVImporter.java
and Java is on your command path. Compile it using a JSDK 1.4 e.g. with
Now there should be a file /mypath/SimpleCSVImporter.class
.
In JabRef, open Options → Manage custom imports, and click Add from folder. Navigate to /mypath
and click the Select ... button. Select the SimpleCSVImporter.class
and click the Select ... button. Your importer should now appear in the list of custom importers under the name "Simple CSV Importer" and, after you click Close also in the File → Import → Custom Importers and File → Import and Append → Custom Importers submenus of the JabRef window.
With custom importer files, it's fairly simple to share custom import formats between users. If you write an import filter for a format not supported by JabRef, or an improvement over an existing one, we encourage you to post your work on our GitHub page. We'd be happy to distribute a collection of submitted import files, or to add to the selection of standard importers.
JabRef supports the MS Office Bibliography XML format for exporting and importing.
As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.
Export (selected) entries in JabRef and choose Office 2007 xml format
Open Word, click on the References Tab
Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)
All entries are then available in the MS bibliography database
The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.
More discussion at https://tex.stackexchange.com/a/351452/9075.
See https://stackoverflow.com/a/4628718/873282
Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.
book
Book
inbook
BookSection
booklet
BookSection
incollection
BookSection
article
JournalArticle
inproceedings
ConferenceProceedings
conference
ConferenceProceedings
proceedings
ConferenceProceedings
collection
ConferenceProceedings
techreport
Report
manual
Report
mastersthesis
Report
phdthesis
Report
unpublished
Report
patent
Patent
misc
Misc
electronic
ElectronicSource
online
InternetSite
periodical
ArticleInAPeriodical
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.
bibtexkey
Tag
title
Title
year
Year
note
Comments
volume
Volume
language
LCID
edition
Edition
publisher
Publisher
booktitle
BookTitle
chapter
ChapterNumber
issue
Issue
school
Department
institution
Institution
doi
DOI
url
url
shorttitle
ShortTitle
pages
Pages
authors
Authors
editors
Editors
translator
Translator
bookauthor
Bookauthor
volumes
NumberVolumes
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_
series
BIBTEX_Series
abstract
BIBTEX_Abstract
keywords
BIBTEX_KeyWords
crossref
BIBTEX_CrossRef
howpublished
BIBTEX_HowPublished
affiliation
BIBTEX_Affiliation
contents
BIBTEX_Contents
copyright
BIBTEX_Copyright
price
BIBTEX_Price
size
BIBTEX_Size
intype
BIBTEX_InType
paper
BIBTEX_Paper
<BibTexEntryType>
BIBTEX_Entry
<BibTexEntryType>
SourceType
key (not BibTeX-Key)
BIBTEX_KEY
pubstate
BITEX_Pubstate
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-
.
msbib-numberofvolume
NumberVolumes
msbib-periodical
PeriodicalTitle
msbib-day
Day
msbib-accessed
Accessed (YearAccessed, MonthAccessed, DayAccessed)
msbib-medium
Medium
msbib-recordingnumber
RecordingNumber
msbib-theater
Theater
msbib-distributor
Distributor
msbib-broadcaster
Broadcaster
msbib-station
Station
msbib-type
Type
msbib-court
Court
msbib-reporter
Reporter
msbib-casenumber
CaseNumber
msbib-abbreviatedcasenumber
AbbreviatedCaseNumber
msbib-productioncompany
ProductionCompany
msbib-producername
producerNames
msbib-composer
composers
msbib-conductor
conductors
msbib-performer
performers
msbib-writer
writers
msbib-director
directors
msbib-compiler
compilers
msbib-interviewer
interviewers
msbib-interviewee
interviewees
msbib-inventor
inventors
msbib-counsel
counsels
The following fields are treated as follows during export:
booktitle
ConferenceName
journal
JournalName
journaltitle
JournalName
month
Month
date
year, month, day (if date is in ISO 8601 form
issue
issue
isbn
StandardNumber
issn
StandardNumber
lccn
StandardNumber
mrnumer
StandardNumber
address (if field contains at least one comma)
City
address (if field does not contain a comma)
City, StateProvince, CountryRegion
location (if field contains at least one comma)
City
location (if field does not contain a comma)
City, StateProvince, CountryRegion
<EntryType is thesis>
ThesisType
<EntryType is patent> number
PatentNumber
number (entry is not patent)
Number
Authors/Editors (single author/editor is enclosed in curly braces)
Corporate
The following fields are treated as follows during import:
organization
ConferenceName
journaltitle
Journal
location
City, StateProvince, CountryRegion
This information is outdated. Please help to improve it.
JabRef can export databases to EndNote-readable files. To use this feature, choose File → Export, choose the file type Endnote (txt) and then specify the name of the export file.
The default EndNote Import filter does not handle multiple authors or editors properly. There are two options to work around this:
Use the built-in filter and fix the file later. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import. Click Import to start the import. After import, select Edit→ Change Text. Change Any Field to Author. Enter " and " into the search field (without quotes). enter a return character into the change field (Option + Enter on Mac OS X, Ctrl + Enter on Windows XP). Click Change. Repeat with the Secondary Author field.
Install the EndNote Import from JabRef filter in the EndNote Extras. Follow the instructions in Advanced Use below. To open up the file in EndNote, create a new database or open an old database in EndNote. Then select File → Import, click on Choose File, then highlight the exported file and click Choose. Click on Import Options and select EndNote Import from JabRef (if it does not appear, select Other filters. If it still doesn't appear, it was not correctly installed.) Click Import to start the import.
The EndNote Export filter maps BibTeX entrytypes to EndNote reference types as follows:
By default, the export filter assumes that entries in the author or editor fields in brackets are corporate authors and replaces the brackets with a trailing comma. However, this means that entries that include LaTeX code in brackets will be assumed to be corporate authors and therefore will be improperly formatted.
For better interoperability between EndNote and JabRef, download the EndNote filter set from the Resources page of JabRef's web page.
XMP is a standard created by Adobe Systems for storing metadata (data about data) in files. An well known example for metadata are MP3 tags, which can be used to describe artist, album and song name of a MP3 file. Adding metadata to MP3 helps other people to identify the songs correctly independent of file-name and can provide means for software (MP3 players for instance) to sort and group songs.
With XMP-support the JabRef team tries to bring the advantages of metadata to the world of reference managers. You can now choose to "Write XMP" metadata in the General Tab of JabRef, which will put all the BibTeX information into the PDF. If you then email this PDF to a colleague she can just drag the file into JabRef and all information that you entered will be available to her.
To use the XMP-feature in JabRef you can do the following:
To import a single annotated PDF-file that contains XMP you can select "File → Import into... → XMP-annotated PDF" or drag the file into the main view.
To write the bibliographic information to the associated PDF do the following: Double click the entry in the main view, go to the "General" tab and click on "Write XMP".
If you want to annotate all the PDFs in a given database you can select "Tools → Write XMP for database"
To verify if it worked you can open the PDF in Adobe Acrobat and select "File → Document Properties → Additional Metadata → Advanced". In the tree to the right you should see an entry called "http://purl.org/net/bibteXMP". This works only with Adobe Acrobat, not with Adobe Reader.
XMP uses a subset of the Resource Description Framework (RDF) to store data. For JabRef a new metadata format is used which maps very closely to BibTeX. Basically all fields and values are turned into nodes of an XML document. Only authors and editors are stored as rdf:Seq-structures, so users of the data can skip the splitting on 'and's. All strings and crossrefs will be resolved in the data.
The following easy minimal schema is used:
The BibTeX-key is stored as bibtexkey
.
The type of the BibTeX-entry is stored as entrytype
.
author
and editor
are encoding as rdf:Seq
s where the individual authors are represented as rdf:li
s.
All other fields are saved using their field-name as is.
The following is an example of the mapping
will be transformed into
Beware of the following caveats if you trying to parse BibTeXMP:
In RDF attribute-value pairs can also be expressed as nodes and vice versa.
Some links about XMP and annotating PDFs
This help applies for older versions of JabRef. From JabRef 3.6 onwards, collaborative working on a SQL database is supported
JabRef is capable of exporting the contents of the BibTeX database, along with groups information, to an external MySQL or PostgreSQL database.
You just need to be sure you have an user/password with full privileges on a MySQL or PostgreSQL server.
Choose File → Export to external SQL database, or click the corresponding button on the toolbar.
Select the database type from the drop down menu for Server Type.
Enter the database connection information, and click Connect.
JabRef will then connect to the specified database, create new tables, and populate those tables with entries and groups information. You will be able to export as many JabRef bib databases as you want without losing the previously explored data. The system recognize a database uniquely by its full path (directory structure + filename). In case you export the same JabRef database more than once, the data of that database will be update in the SQL database. Note that you will not be prompted for the connection information on subsequent exports. If you would like to export to a different database, you can change the connection information by choosing File → Connect to external SQL database (or by clicking the associated toolbar button), and then performing an export. Since version 2.8 tables are not dropped, and user is able to store more than one JabRef database into a single SQL database.
When importing a database from an SQL database (File → Import from external SQL database), JabRef will place each database found in a different tab.
JabRef supports the MS Office Bibliography XML format for exporting and importing.
As you are using JabRef already, you can simply use the builtin export functionality for Office 2007 xml format, that is the format where Microsoft stores it bibliography information.
Export (selected) entries in JabRef and choose Office 2007 xml format
Open Word, click on the References Tab
Click on Manage sources -> Browse -> Open the exported XML File (or better copy it directly to the location under browse)
All entries are then available in the MS bibliography database
The only problem in the export could be when you have a "company" as author. That is simply exported as author and not in the company field.
More discussion at https://tex.stackexchange.com/a/351452/9075.
See https://stackoverflow.com/a/4628718/873282
Some field names in the XML format differ from the field names in the BibTeX/BibLaTeX format and can therefore be not directly mapped between the formats. Therefore this help file provides a list of all field mappings.
book
Book
inbook
BookSection
booklet
BookSection
incollection
BookSection
article
JournalArticle
inproceedings
ConferenceProceedings
conference
ConferenceProceedings
proceedings
ConferenceProceedings
collection
ConferenceProceedings
techreport
Report
manual
Report
mastersthesis
Report
phdthesis
Report
unpublished
Report
patent
Patent
misc
Misc
electronic
ElectronicSource
online
InternetSite
periodical
ArticleInAPeriodical
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.
bibtexkey
Tag
title
Title
year
Year
note
Comments
volume
Volume
language
LCID
edition
Edition
publisher
Publisher
booktitle
BookTitle
chapter
ChapterNumber
issue
Issue
school
Department
institution
Institution
doi
DOI
url
url
shorttitle
ShortTitle
pages
Pages
authors
Authors
editors
Editors
translator
Translator
bookauthor
Bookauthor
volumes
NumberVolumes
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_
series
BIBTEX_Series
abstract
BIBTEX_Abstract
keywords
BIBTEX_KeyWords
crossref
BIBTEX_CrossRef
howpublished
BIBTEX_HowPublished
affiliation
BIBTEX_Affiliation
contents
BIBTEX_Contents
copyright
BIBTEX_Copyright
price
BIBTEX_Price
size
BIBTEX_Size
intype
BIBTEX_InType
paper
BIBTEX_Paper
<BibTexEntryType>
BIBTEX_Entry
<BibTexEntryType>
SourceType
key (not BibTeX-Key)
BIBTEX_KEY
pubstate
BITEX_Pubstate
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-
.
msbib-numberofvolume
NumberVolumes
msbib-periodical
PeriodicalTitle
msbib-day
Day
msbib-accessed
Accessed (YearAccessed, MonthAccessed, DayAccessed)
msbib-medium
Medium
msbib-recordingnumber
RecordingNumber
msbib-theater
Theater
msbib-distributor
Distributor
msbib-broadcaster
Broadcaster
msbib-station
Station
msbib-type
Type
msbib-court
Court
msbib-reporter
Reporter
msbib-casenumber
CaseNumber
msbib-abbreviatedcasenumber
AbbreviatedCaseNumber
msbib-productioncompany
ProductionCompany
msbib-producername
producerNames
msbib-composer
composers
msbib-conductor
conductors
msbib-performer
performers
msbib-writer
writers
msbib-director
directors
msbib-compiler
compilers
msbib-interviewer
interviewers
msbib-interviewee
interviewees
msbib-inventor
inventors
msbib-counsel
counsels
The following fields are treated as follows during export:
booktitle
ConferenceName
journal
JournalName
journaltitle
JournalName
month
Month
date
year, month, day (if date is in ISO 8601 form
issue
issue
isbn
StandardNumber
issn
StandardNumber
lccn
StandardNumber
mrnumer
StandardNumber
address (if field contains at least one comma)
City
address (if field does not contain a comma)
City, StateProvince, CountryRegion
location (if field contains at least one comma)
City
location (if field does not contain a comma)
City, StateProvince, CountryRegion
<EntryType is thesis>
ThesisType
<EntryType is patent> number
PatentNumber
number (entry is not patent)
Number
Authors/Editors (single author/editor is enclosed in curly braces)
Corporate
The following fields are treated as follows during import:
organization
ConferenceName
journaltitle
Journal
location
City, StateProvince, CountryRegion
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.
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.
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
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]
.
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.
When you import new entries from a supported reference format, or fetch entries directly from the Internet, the inspection window allows you to select the entries you want to keep, to avoid adding duplicated entries, and to perform some simple operations like generating BibTeX keys for the entries, or adding them to groups. If you are importing into an existing database, it is often easier to perform these operations before they are mixed in between the entries of your database.
Entries are first shown in the inspection window. Note that, if this takes too long (for example), you can click on the button Stop at the bottom of the window.
Once the entries displayed in the inspection window, none of them have been added to one of your databases yet.
By default, all the entries are selected for importation, as shown by the checked boxes in the Keep column. You can select/unselect an entry by clicking on these check boxes. On the left panel, buttons allow you to Select all the entries for importation, or to Deselect all the entries.
A left click on an entry (out of the check box and icons) let you choose it. It displays an preview of the entry below the entry table. As usual, you can choose several entries by using the Shift or the Ctrl keys. Then, pushing the button Delete on the left panel will remove the chosen entries from the table.
A right click on an entry displays a drop-down menu which allows you to:
delete the entry
add the entry to a group
link a local file to the entry
download the file corresponding to the entry
automatically set file links to the entry
attach an URL to the entry
Potential duplicates are pointed out by an icon in the second column. A click on this icon allows you to check the similarities. A button on the left panel allows you to Deselect all duplicates (without inspection).
On the left panel, if the box Generate keys is checked, keys will be automatically generated on import. You can also choose to generate the keys now by clicking on the button Generate now.
Once you are done with the entry selection, you can add these entries to your database by clicking on OK at the bottom of the window. Alternatively, you can Cancel the import.
Entries can be created from a reference text.
In case you have a reference string, JabRef offers the functionality to convert the text to BibTeX. Thereby, JabRef uses the technology offered by Grobid.
Example:
Click Library and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.
The "Plain Reference Parser" window opens
Paste the reference text:
Click "Add to current library"
The result is selected in the entry table:
JabRef thereby used the service offered by FreeCite. This servce was shut down in 2019. The following explanations are only for historical interest.
Click BibTeX and select "New entry from plain text..." Alternatively, you can press Ctrl+Shift+N.
Select an entry type. Select "InProceedings", this works in the most cases
The "Plain text import" window opens
Paste the entry using the middle button "paste"
Click on "Parse with FreeCite"
The entry editor opens with the parsed result:
Do your corrections there.
After step 4 from above, you can manually assign the types to each text.
Select the text
Double click on the type at the right side at "Available BibTeX fields"
After you finished, you can press "Accept".
JabRef allows you to push any entries in your main window to an external editor through the push-to-external application feature. You would need to first select the entries in your entry table that you would like to export before using the feature. Once you have done so, go to the tools submenu and click on the push-to-external application button to the left of the Generate BibTeX keys button. By default the external editor used to push exports is TeXStudio.
On MacOS:
On Windows:
JabRef also allows you to change the external editor application you would like to push your exports to. To do so, first go to Options → Preferences → External programs. Under the Push applications section click on the Application to push entries to field. This will cause a dropdown menu to appear, from which you are then able to select from a list of all the external editors you have configured.
Once you have made your selection and click Save, the push-to-external application button icon will change to match that of the selected external editor application.
When you click on the push-to-external application button, JabRef will export your selected entries to an open LaTeX file in the selected external editor application. As an example, here is what happens when you export one entry to TexStudio.
As long as you continue using the same external editor application, clicking on the push-to-external application button for subsequent exports will just add new citations or extend an existing citation with additional entries. Following from the example above, here is what happens when you export a second entry to TeXStudio on an existing citation, which is extended to include the new entry in your LaTeX document.
This tool allows you to search for citations in LaTeX files.
In the user interface, a tab was added to the entry editor, the aesthetics have been improved, and the tool was renamed to Search for Citations in LaTeX files.
A new tab was added to the entry editor. It allows to search for citations to the active entry in the LaTeX file directory. It can be configured in the Library properties dialog.
See the image below to see how it works:
A LaTeX Citations tab has been added to the entry editor.
This tab can be disabled in the Entry editor preferences.
A progress indicator appears while parsing.
Current search is cancelled if another entry is selected.
Parsed files are stored when the tool is run for the first time (to achieve better performance).
The current search path is shown at the bottom, next to a button to set the LaTeX file directory.
A user-friendly error logging and handling has also been implemented.
The citations list view is the same for dialog tool and tab.
The context of citations is shown instead of the whole line of text (which is shown as a tooltip).
Absolute file path has been changed into a relative one, from the search path.
New icons and styles for context, file path, and position (line and column) of a citation.
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)".
Abstract
AB
Abstract / AbstractText
AB
Affiliation
AD
Article Date
ArticleDate
Article Identifier
AID
Article
Article Title
ArticleTitle
Author
AU
AuthorList
AU/A1
Author Identifier
AUID
Book Title
BTI
BT
Chemical List
ChemicalList
Citation Subset
CitationSubset
Collection Title
CTI
Collaborators
A3
Comments Corrections List
CommentsCorrectionsList
Corporate Author
CN
Copyright Information
CopyrightInformation
Create Date
CRDT
Country
Country
Data Bank List
DataBankList
Date Completed
DCOM
DateCompleted
Date Created
DA
DateCreated
Date Last Revised
LR
DateRevised
Date of Electronic Publication
DEP
Date of Publication
DP
Y2
Delete Citation
DeleteCitation
DOI
DOI
Edition
EN
Editor and Full Editor Name
FED
ED
End
ER
End Page
EP
Entrez Date
EDAT
Full Author
FAU
Full Personal Name as Subject
FPS
Gene Symbol
GS
General Note
GN
GeneralNote
Grant List
GrantList
Grant Number
GR
Investigator Name and Full Investigator Name
IR/FIR
Investigator List
InvestigatorList
ISO Abbreviation
ISOAbbreviation
ISBN
ISBN
SN
ISSN
IS
ISSN
ISSN Linking
ISSNLinking
Issue
IP
Issue
IS
Journal Issue
JournalIssue
Journal Title
JT
Journal
JO/JF/JA
Journal Title Abbreviation
TA
Keywords
KeywordList
KW
Language
LA
Language
Location Identifier
LID
Manuscript Identifier
MID
Medline Title Abbreviation
MedlineTA
Medline Date
MedlineDate
MeSH Date
MHDA
Mesh Heading List
MeshHeadingList
MeSH Terms
MH
Misc
M1-M3
NLM Unique ID
JID
NlmUniqueID
Note
N1
Number of References
RF
Other Abstract and other abstract language
OAB/OABL
OtherAbstract
Other Copyright Information
OCI
Other ID
OID
OtherID
Other Term
OT
Other Term Owner
OTO
Owner
OWN
Pagination
PG
Pagination
Personal Name as Subject
PS
Personal Name as Subject List
PersonalNameSubjectList
Place of Publication
PL
Publication History Status
PHST
Publication Status
PST
Publication Type
PT
Publication Type List
PublicationTypeList
Publisher
PB
Publishing Date
PubDate
Publishing Model
PUBM
PubMed Central Identifier
PMCR
PubmMed Unique Identifier
PMID
PMID
Registry Number
RN
Reprint
RP
Start Page
SP
Substance Name
NM
Supplemental Mesh List
SupplMeshList
Secondary Source ID
SI
Source
SO
Space Flight Mission
SFM
Status
STAT
Subset
SB
Title
TI
Title
TI/T1
Transliterated Title
TT
Type
TY
URL
UR
User Text
U1-U3
Volume
VI
Volume
VL
Volume Title
VTI
Vernacular Title
VernacularTitle
Year
PY/Y1
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.
Import and export of bibliographic information
The official browser extension automatically identifies and extracts bibliographic information on websites and sends them to JabRef with one click.
JabRef has an official browser extension. It automatically identifies and extracts bibliographic information on websites and sends them to JabRef with one click.
When you find an interesting article through Google Scholar, the arXiv or journal websites, this browser extension allows you to add those references to JabRef. Even links to accompanying PDFs are sent to JabRef, where those documents can easily be downloaded, renamed and placed in the correct folder. A wide range of publisher sites, library catalogs and databases are supported.
Normally, you simply install the extension from the browser store and are ready to go.
Sometimes, a manual installation is necessary (e.g. if you use the portable version of JabRef). In this case, please take the following steps:
Make sure you have at least JabRef 5.0 installed.
On Windows 7, please upgrade Powershell.
Download the following files and copy them to the same directory as JabRef.exe
Make sure that the correct file name of the JabRef.bat
file is specified in JabRefHost.ps1
under $jabRefExe
.
Run the following command from the console (with the correct path to the jabref.json
file):
For Firefox support:
For Chrome/Opera support
You may need to change the root HKEY_LOCAL_MACHINE
to HKEY_CURRENT_USER
if you don't have admin rights.
Download and install the Debian package of JabRef 5.0
Download org.jabref.jabref.json and put it into
/usr/lib/mozilla/native-messaging-hosts/org.jabref.jabref.json
to install with admin rights for all users
~/.mozilla/native-messaging-hosts/org.jabref.jabref.json
to install without admin rights for the current user
Install the snap package of JabRef 5.0
Connect the appropriate plug for the selected browser:
Firefox: snap connect jabref:hostfs-mozilla-native-messaging-jabref
Chrome: snap connect jabref:etc-opt-chrome-native-messaging-jabref
Chromium: snap connect jabref:etc-chromium-native-messaging-jabref
Download and install the DMG package of JabRef 5.0.
Download org.jabref.jabref.json and put it into
/Library/Application Support/Mozilla/NativeMessagingHosts/org.jabref.jabref.json
to install with admin rights for all users
~/Library/Application Support/Mozilla/NativeMessagingHosts/org.jabref.jabref.json
to install without admin rights for the current user
After the installation, you should be able to import bibliographic references into JabRef directly from your browser. Just visit a publisher site or some other website containing bibliographic information (for example, the arXiv) and click the JabRef symbol in the Firefox search bar (or press Alt+Shift+J). Once the JabRef browser extension has extracted the references and downloaded the associated PDF's, the import window of JabRef opens.
You might want to configure JabRef so that new entries are always imported in an already opened instance of JabRef. For this, activate "Remote operation" under the Advanced tab in the JabRef Preferences.
JabRef 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.
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 Export-Filter Editor for Jabref to quickly create export filters.
Let us assume that we are creating an HTML export filter. While the export filter only needs to consist of a single .layout file, which in this case could be called html.layout, you may also want to add two files called html.begin.layout and html.end.layout. The former contains the header part of the output, and the latter the footer part. JabRef will look for these two files whenever the export filter is used, and if found, either of these will be copied verbatim to the output before or after the individual entries are written.
Note that these files must reside in the same directory as html.layout, and must be named by inserting .begin and .end, respectively. In our example export filter, these could look like the following:
html.begin.layout: <!DOCTYPE html><html> <body style="color:#275856; font-family: Arial, sans-serif;">
html.end.layout: </body></html>
The file html.layout provides the default template for exporting one single entry. If you want to use different templates for different entry types, you can do this by adding entry-specific .layout files. These must also reside in the same directory as the main layout file, and are named by inserting .entrytype into the name of the main layout file. The entry type name must be in all lowercase. In our example, we might want to add a template for book entries, and this would go into the file html.book.layout. For a PhD thesis we would add the file html.phdthesis.layout, and so on. These files are similar to the default layout file, except that they will only be used for entries of the matching type. Note that the default file can easily be made general enough to cover most entry types in most export filters.
Layout files are created using a simple markup format where commands are identified by a preceding backslash. All text not identified as part of a command will be copied verbatim to the output file.
An arbitrary word preceded by a backslash, e.g. \author
, \editor
, \title
or \year
, will be interpreted as a reference to the corresponding field, which will be copied directly to the output.
Often there will be a need for some preprocessing of the field contents before output. This is done using a field formatter - a java class containing a single method that manipulates the contents of a field.
A formatter is used by inserting the \format
command followed by the formatter name in square braces, and the field command in curly braces, e.g.:
\format[ToLowerCase]{\author}
You can also specify multiple formatters separated by commas. These will be called sequentially, from left to right, e.g.
\format[ToLowerCase,HTMLChars]{\author}
will cause the formatter ToLowerCase to be called first, and then HTMLChars will be called to format the result. You can list an arbitrary number of formatters in this way.
The argument to the formatters, withing the curly braces, does not have to be a field command. Instead, you can insert normal text, which will then be passed to the formatters instead of the contents of any field. This can be useful for some fomatters, e.g. the CurrentDate formatter (described below).
Some formatters take an extra argument, given in parentheses immediately after the formatter name. The argument can be enclosed in quotes, which is necessary if it includes the parenthesis characters. For instance, \format[Replace("\s,_")]{\journal}
calls the Replace formatter with the argument \s,_ (which results in the "journal" field after replacing all whitespace by underscores).
See below for a list of built-in export formatters.
Some static output might only make sense if a specific field is set. For instance, say we want to follow the editor names with the text (Ed.)
. This can be done with the following text:
\format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.)
However, if the editor
field has not been set - it might not even make sense for the entry being exported - the (Ed.)
would be left hanging. This can be prevented by instead using the \begin
and \end
commands:
\begin{editor} \format[HTMLChars,AuthorFirstFirst]{\editor} (Ed.) \end{editor}
The \begin
and \end
commands make sure the text in between is printed if and only if the field referred in the curly braces is defined for the entry being exported.
A conditional block can also be dependent on more than one field, and the content is only printed when simple boolean conditions are satisfied. Three boolean operators are provided:
AND operator : &
, &&
OR operator : |
, ||
NOT operator : !
For example, to output text only if both year
and month
are set, use a block like the following: \begin{year&&month}Month: \format[HTMLChars]{\month}\end{year&&month}
which will print "Month: " plus the contents of the month
field, but only if also the year
field is defined.
As an example for the usage of the NOT operator, consider the following:
\begin{!year}\format[HTMLChars]{(no year)}\end{!year}
Here, "no year" is printed as output text if no year field is defined.
Note: Use of the \begin
and \end
commands is a key to creating layout files that work well with a variety of entry types.
If you wish to separate your entries into groups based on a certain field, use the grouped output commands. Grouped output is very similar to conditional output, except that the text in between is printed only if the field referred in the curly braces has changed value.
For example, let's assume I wish to group by keyword. Before exporting the file, make sure you have sorted your entries based on keyword. Now use the following commands to group by keyword:
\begingroup{keywords}New Category: \format[HTMLChars]{\keywords} \endgroup{keywords}
JabRef provides the following set of formatters:
Authors
: this formatter provides formatting options for the author and editor fields; for detailed information, see below. It deprecates a range of dedicated formatters provided in versions of JabRef prior to 2.7.
CreateBibORDFAuthors
: formats authors for according to the requirements of the Bibliographic Ontology (bibo).
CreateDocBookAuthors
: formats the author field in DocBook style.
CreateDocBookEditors
: formats the editor field in DocBook style.
CurrentDate
: outputs the current date. With no argument, this formatter outputs the current date and time in the format "yyyy.MM.dd hh:mm:ss z" (date, time and time zone). By giving a different format string as argument, the date format can be customized. For example \format[CurrentDate]{yyyy.MM.dd}
will give the date only, e.g. 2005.11.30.
DateFormatter
: formats a date. With no argument, the date is given in ISO-format (yyyy-MM-dd), which is also the expected format of the input. The argument may contain yyyy
, MM
, and dd
in any combination. For example \format[DateFormatter(MM/yyyy)]{\date}
will output 07/2016 if the date field contains 2016-07-15.
Default
: takes a single argument, which serves as a default value. If the string to format is non-empty, it is output without changes. If it is empty, the default value is output. For instance, \format[Default(unknown)]{\year}
will output the entry's year if set, and "unknown" if no year is set.
DOIStrip
: strips any prefixes from the DOI string.
DOICheck
: provides the full url for a DOI link.
EntryTypeFormatter
: camel case of entry types, so "inbook" -> "InBook".
FileLink(filetype)
: if no argument is given, this formatter outputs the first external file link encoded in the field. To work, the formatter must be supplied with the contents of the "file" field.
This formatter takes the name of an external file type as an optional argument, specified in parentheses after the formatter name. For instance, \format[FileLink(pdf)]{\file}
specifies pdf
as an argument. When an argument is given, the formatter selects the first file link of the specified type. In the example, the path to the first PDF link will be output.
FirstPage
: returns the first page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "345".
FormatChars
: This formatter converts LaTeX character sequences their equicalent unicode characters and removes other LaTeX commands without handling them.
FormatPagesForHTML
: replaces "--" with "-".
FormatPagesForXML
: replaces "--" with an XML en-dash.
GetOpenOfficeType
: returns the number used by the OpenOffice.org bibliography system (versions 1.x and 2.x) to denote the type of this entry.
HTMLChars
: replaces TeX-specific special characters (e.g. {\"{a}}
or {\sigma})
with their HTML representations, and translates LaTeX commands \emph
, \textit
, \textbf
, \texttt
, \underline
, \textsuperscript
, \textsubscript
, \sout
into HTML equivalents.
HTMLParagraphs
: interprets two consecutive newlines (e.g. \n \n) as the beginning of a new paragraph and creates paragraph-html-tags accordingly.
IfPlural
: outputs its first argument if the input field looks like an author list with two or more names, or its second argument otherwise. E.g. \format[IfPlural(Eds.,Ed.)]{\editor}
will output "Eds." if there is more than one editor, and "Ed." if there is only one.
JournalAbbreviator
: The given input text is abbreviated according to the journal abbreviation lists. If no abbreviation for input is found (e.g. not in list or already abbreviated), the input will be returned unmodified. For instance, when using \format[JournalAbbreviator]{\journal}
, "Physical Review Letters" gets "Phys. Rev. Lett."
LastPage
: returns the last page from the "pages" field, if set. For instance, if the pages field is set to "345-360" or "345--360", this formatter will return "360".
NoSpaceBetweenAbbreviations
: LayoutFormatter that removes the space between abbreviated First names. Example: J. R. R. Tolkien becomes J.R.R. Tolkien.
NotFoundFormatter
: Formatter used to signal that a formatter hasn't been found. This can be used for graceful degradation if a layout uses an undefined format.
Number
: outputs the 1-based sequence number of the current entry in the current export. This formatter can be used to make a numbered list of entries. The sequence number depends on the current entry's place in the current sort order, not on the number of calls to this formatter.
Ordinal
: replaces numbers with ordinals so 1
is replaced with 1st
etc.
RemoveBrackets
: removes all curly brackets "{" or "}".
RemoveBracketsAddComma
: removes all curly brackets "{" or "}". The closing curly bracket is replaced by a comma.
RemoveLatexCommands
: removes LaTeX commands like \em
, \textbf
, etc. If used together with HTMLChars
or XMLChars
, this formatter should be called last.
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.
Authors
formatterTo accommodate for the numerous citation styles, the Authors
formatter allows flexible control over the layout of the author list. The formatter takes a comma-separated list of options, by which the default values can be overridden. The following option/value pairs are currently available, where the default values are given in curly brackets.
AuthorSort = [ {FirstFirst} | LastFirst | LastFirstFirstFirst ]
specifies the order in which the author names are formatted.
FirstFirst
: first names are followed by the surname.
LastFirst
: the authors' surnames are followed by their first names, separated by a comma.
LastFirstFirstFirst
: the first author is formatted as LastFirst, the subsequent authors as FirstFirst.
AuthorAbbr = [ FullName | LastName | {Initials} | InitialsNoSpace | FirstInitial | MiddleInitial ]
specifies how the author names are abbreviated.
FullName
: shows full author names; first names are not abbreviated.
LastName
: show only surnames, first names are removed.
Initials
: all first names are abbreviated.
InitialsNospace
: as Initials, with any spaces between initials removed.
FirstInitial
: only first initial is shown.
MiddleInitial
: first name is shown, but all middle names are abbreviated.
AuthorPunc = [ {FullPunc} | NoPunc | NoComma | NoPeriod ]
specifies the punctuation used in the author list when AuthorAbbr
is used
FullPunc
: no changes are made to punctuation.
NoPunc
: all full stops and commas are removed from the author name.
NoComma
: all commas are removed from the author name.
NoPeriod
: all full stops are removed from the author name.
AuthorSep = [ {Comma} | And | Colon | Semicolon | Sep=<string> ]
specifies the separator to be used between authors. Any separator can be specified, with the Sep=<string>
option. Note that appropriate spaces need to be added around string
.
AuthorLastSep = [ Comma | {And} | Colon | Semicolon | Amp | Oxford | LastSep=<string> ]
specifies the last separator in the author list. Any separator can be specified, with the LastSep=<string>
option. Note that appropriate spaces need to be added around string
.
AuthorNumber = [ {inf} | <integer> ]
specifies the number of authors that are printed. If the number of authors exceeds the maximum specified, the authorlist is replaced by the first author (or any number specified by AuthorNumberEtAl
), followed by EtAlString
.
AuthorNumberEtAl = [ {1} | <integer> ]
specifies the number of authors that are printed if the total number of authors exceeds AuthorNumber
. This argument can only be given after AuthorNumber
has already been given.
EtAlString = [ { et al.} | EtAl=<string> ]
specifies the string used to replace multiple authors. Any string can be given, using EtAl=<string>
If an option is unspecified, the default value (shown in curly brackets above) is used. Therefore, only layout options that differ from the defaults need to be specified. The order in which the options are defined is (mostly) irrelevant. So, for example,
\format[Authors(Initials,Oxford)]{\author}
is equivalent to
\format[Authors(Oxford,Initials)]{\author}
As mentioned, the order in which the options are specified is irrelevant. There is one possibility for ambiguity, and that is if both AuthorSep
and AuthorLastSep
are given. In that case, the first applicable value encountered would be for AuthorSep
, and the second for AuthorLastSep
. It is good practise to specify both when changing the default, to avoid ambiguity.
Given the following authors, "Joe James Doe and Mary Jane and Bruce Bar and Arthur Kay" ,the Authors
formatter will give the following results:
Authors()
, or equivalently, Authors(FirstFirst,Initials,FullPunc,Comma,And,inf,EtAl= et al.)
J. J. Doe, M. Jane, B. Bar and A. Kay
Authors(LastFirstFirstFirst,MiddleInitial,Semicolon)
Doe, Joe J.; Mary Jane; Bruce Bar and Arthur Kay
Authors(LastFirst,InitialsNoSpace,NoPunc,Oxford)
Doe JJ, Jane M, Bar B, and Kay A
Authors(2,EtAl= and others)
J. J. Doe and others
Most commonly available citation formats should be possible with this formatter. For even more advanced options, consider using the Custom Formatters detailed below.
WrapFileLinks
formatterThis formatter iterates over all file links, or all file links of a specified type, outputting a format string given as the first argument. The format string can contain a number of escape sequences indicating file link information to be inserted into the string.
This formatter can take an optional second argument specifying the name of a file type. If specified, the iteration will only include those files with a file type matching the given name (case-insensitively). If specified as an empty argument, all file links will be included.
After the second argument, pairs of additional arguments can be added in order to specify regular expression replacements to be done upon the inserted link information before insertion into the output string. A non-paired argument will be ignored. In order to specify replacements without filtering on file types, use an empty second argument.
The escape sequences for embedding information are as follows:
\i
: This inserts the iteration index (starting from 1), and can be useful if the output list of files should be enumerated.
\p
: This inserts the file path of the file link.
\f
: This inserts the name of the file link's type.
\x
: This inserts the file's extension, if any.
\d
: This inserts the file link's description, if any.
For instance, an entry could contain a file link to the file "/home/john/report.pdf" of the "PDF" type with description "John's final report". Using the WrapFileLinks formatter with the following argument:
\format[WrapFileLinks(\i. \d (\p))]{\file}
would give the following output:
John's final report (/home/john/report.pdf)
If the entry contained a second file link to the file "/home/john/draft.txt" of the "Text file" type with description 'An early "draft"', the output would be as follows:
John's final report (/home/john/report.pdf)
An early "draft" (/home/john/draft.txt)
If the formatter was called with a second argument, the list would be filtered. For instance:
\format[WrapFileLinks(\i. \d (\p),,text file)]{\file}
would show only the text file:
An early "draft" (/home/john/draft.txt)
If we wanted this output to be part of an XML styled output, the quotes in the file description could cause problems. Adding two additional arguments to translate the quotes into XML characters solves this:
\format[WrapFileLinks(\i. \d (\p),,text file,",")]{\file}
would give the following output:
An early "draft" (/home/john/draft.txt)
Additional pairs of replacements could be added.
If none of the available formatters can do what you want to achieve, you can add your own by implementing the net.sf.jabref.export.layout.LayoutFormatter
interface. If you insert your class into the net.sf.jabref.export.layout.format
package, you can call the formatter by its class name only, like with the standard formatters. Otherwise, you must call the formatter by its fully qualified name (including package name). In any case, the formatter must be in your classpath when running JabRef.
From JabRef 2.2, it is possible to define custom name formatters using the BibTeX-sty-file syntax. This allows ultimate flexibility, but is a cumbersome to write
You can define your own formatter in the preference tab "Name Formatter" using the following format and then use it with the name given to it as any other formatter
<case1>@<range11>@<format>@<range12>@<format>@<range13>...@@ <case2>@<range21>@... and so on.
This format first splits the task to format a list of author into cases depending on how many authors there are (this is since some formats differ depending on how many authors there are). Each individual case is separated by @@ and contains instructions on how to format each author in the case. These instructions are separated by a @.
Cases are identified using integers (1, 2, 3, etc.) or the character * (matches any number of authors) and will tell the formatter to apply the following instructions if there are a number of less or equal of authors given.
Ranges are either <integer>..<integer>
, <integer>
or the character *
using a 1 based index for indexing authors from the given list of authors. Integer indexes can be negative to denote them to start from the end of the list where -1 is the last author.
For instance with an authorlist of "Joe Doe and Mary Jane and Bruce Bar and Arthur Kay":
1..3 will affect Joe, Mary and Bruce
4..4 will affect Arthur
* will affect all of them
2..-1 will affect Mary, Bruce and Arthur
The <format>
-strings use the BibTeX formatter format:
The four letters v, f, l, j indicate the name parts von, first, last, jr which are used within curly braces. A single letter v, f, l, j indicates that the name should be abbreviated. If one of these letters or letter pairs is encountered JabRef will output all the respective names (possibly abbreviated), but the whole expression in curly braces is only printed if the name part exists.
For instance if the format is "{ll} {vv {von Part}} {ff}" and the names are "Mary Kay and John von Neumann", then JabRef will output "Kay Mary" (with two space between last and first) and "Neuman von von Part John".
I give two examples but would rather point you to the BibTeX documentation.
Small example: "{ll}, {f.}"
will turn "Joe Doe"
into "Doe, J."
Large example:
To turn:
"Joe Doe and Mary Jane and Bruce Bar and Arthur Kay"
into
"Doe, J., Jane, M., Bar, B. and Kay, A."
you would use
1@*@{ll}, {f}.@@2@1@{ll}, {f}.@2@ and {ll}, {f}.@@*@1..-3@{ll}, {f}., @-2@{ll}, {f}.@-1@ and {ll}, {f}.