BibCheX Configuration¶
This page explains all possible options that can be specified in the config JSON file.
Configuration is possible at multiple levels. The config JSON file must contain an object at its top
level. In this object, all configuration options can be set. Additionally, the top object can have a
key sub
, which can contain a list of JSON objects. Each object contains option overrides for
specific cases, e.g. specific BibTeX item types. See config overrides and
per-item configuration for details.
Main Configuration Options¶
- required
- List of fields that must be present in every item
Type: list of string
- forbidden
- List of fields that must never be present
Type: list of string
- wanted
List of fields the value of which interests us. All other fields will not be checked against the data returned by data sources.
- dot_initials
- Whether authors’ initials should be dotted, i.e., ‘John R. Doe’ instead of ‘John R Doe’
Type: boolean
- authors_ignore_allcaps
- Whether to ignore author name capitalization for data sources that return names in all caps.
Type: boolean
- title_ignore_allcaps
- Whether to ignore title capitalization for data sources that return names in all caps
Type: boolean
Individual checkers¶
All checks (i.e., tests that do not compare to data fetched from some source) can be enabled or
disabled. Each checker has a name; refer to the list of checkers for the
names of the checkers. Additionally, the output will tell you the names of the checkers that have
detected problems. Each such checker can be enabled/disabled by setting the option
check_<checker_name>
. For example, setting check_journal_abbrev
to false
will disable
the check for abbreviated journal names.
By default, all checkers are enabled. Some checkers take additional options. These are listed on the list of checkers.
Data sources¶
Some of the data sources take additional options. These are:
- crossref_plus
- Your crossref plus credentials, in case you have them. If you don’t set this option, the free version will be used.
Type: string
- crossref_mailto
- If you use the free Crossref API access, please provide a valid email address here.
Type: string
Config Overrides¶
The sub key in the main config object can contain overrides for all config options. The sub key expects a list of objects. Each object must contain the keys select_field and select_re, where select_field expects the name of a BibTeX field, and select_re expects a regular expression. For each entry in your BibTeX file, if the specified field matches the specified regular expression, the specified overrides will be applied. There always is a field named entrytype that contains the type of the BibTeX entry.
In the following example, the required fields (option required) are configured to be author and title. For entries of type article, we also want the journal to be specified:
{
"required": ["author", "title"],
"sub": [
{
"select_field": "entrytype",
"select_re": "article",
"required": ["author", "title", "journal"]
}
]
}
Per-Item Configuration¶
Problems raised by checkers as well as differences to the data pulled in by data sources can be ignored on a per-item basis.
To ignore a problem raised by a checker, find the name of the checker. The output HTML file tells you the name of the checker for each problem. Then, in your BibTeX file, add to the item in question a field bibchex-ignore-problems
. The data of that field is a semicolon-separated list of checker names to ignore.
As an example, an item for which problems raised by the dead_url
and isbn_length
checkers should be ignored could look like this:
@article {myarticle
title={Foo},
authors={John Doe},
doi={01234},
bibchex-ignore-problems={dead_url;isbn_length}
}
To ignore differences to data pulled from some data source, add a field bibchex-ignore-diffs
. The data of that field is a semicolon-separated list of tokens of the form <data source>.<field>
. This specifies that the data for <field>
pulled from the data source <data source>
should be ignored when computing differences. The <field>
specifier can be set to *
to ignore all data from the respective data source.
As an example, an item for which no comparison to the data from crossref should take place could look like this:
@article {myarticle
title={Foo},
authors={John Doe},
doi={01234},
bibchex-ignore-diffs={crossref.*}
}
If you just want to ignore differences in the date
field for data coming from crossref, you instead write:
@article {myarticle
title={Foo},
authors={John Doe},
doi={01234},
bibchex-ignore-diffs={crossref.date}
}