The Better BibTeX Configuration can be found under the regular Zotero preferences pane, tab ‘Better BibTeX’.

The configuration of Better BibTeX is a little baroque compared to the standard Zotero Bib(La)TeX exporters (which only have hidden preferences). The defaults should just work, but here’s an attempt to describe what they do.

Making any change here will drop your entire export cache. This is usually not a problem unless you have a really large library, but you can read about what is involved here.


default: <not set>

Snippet of javascript to run after each reference generation.

@string definitions

default: <not set>

If you have externally maintained @string vars paste them here and they will be resolved for subsequent imports. These should be entered as @string declarations, such as @string{IEEE_J_PWRE = "{IEEE} Transactions on Power Electronics"}, not just the var name.


Apply title-casing to titles

default: yes

If you’re dead-set on ignoring both BibTeX/BibLaTeX best practice (see the BBT FAQ) and the Zotero recommendations on title/sentence casing, you can turn this off to suppress title casing for English references

Apply case-protection to capitalized words by enclosing them in braces

default: yes

If you’re dead-set on ignoring both BibTeX/BibLaTeX best practice (see the BBT FAQ) and the Zotero recommendations on title/sentence casing, you can turn this off to suppress automatic brace-protection for words with uppercase letters.

Retain export cache across upgrades

default: no

By default, BBT clears all caches whenever BBT or Zotero is upgraded. I can’t realistically predict whether a change in Zotero or BBT is going to affect the output generated for any given item, so to be sure you always have the latest export-affecting fixes, the caches are discarded when a new version of either is detected. If you have a very large library however, of which you regularly export significant portions, you might want to retain the cached items even if that does come with the risk that you get wrong output on export that has been fixed in the interim.

If you have this on, and you experience any problem that is not the cache getting dropped on upgrade, you must clear the cache and reproduce the problem. When you change this setting, as with any setting change, the cache will be dropped.

Parallel background exports:

default: 1

BBT can now perform its exports in a separate thread, and should no longer block Zotero’s UI pretty much regardless of how large your library is. While it’s been tested and seems to work well, I still consider it to be experimental at this stage. You can turn it off by setting this value to 0 and get the old (blocking) behavior back.


Sentence-case titles on import:

default: yes, but try to exclude already-sentence-cased titles

Bib(La)TeX references ought to be stored in Title Case; Zotero references are expected to be entered as sentence-case.

With this option on, BBT will try to sentence-case during import. This sentence-casing uses heuristics, no natural language processing is performed, and the results are not perfect.

You can turn this off, but you may then also want to disable Apply title-casing to titles (which has its own problems, see the help entry for that option on this page). With ‘yes, but try to exclude already-sentence-cased titles’, BBT will attempt to detect titles that are already sentence cased and leave them as-is on import.


  • yes, but try to exclude already-sentence-cased titles
  • yes
  • no (import titles as-is)

Insert case-protection for braces:

default: minimal

On import, BBT will add case-protection () to titles that have words in {Braces}.

There’s plenty of bib(la)tex files out there that do this a little overzealously, and you may not like the resulting HTML code in your items, even though this is what the braces mean in bib(la)tex, and Zotero supports it.

If you turn this off, the markup is omitted during import. When you select ‘yes’, all braces that bib(la)tex would interpret as case protection (which is not all of them) are converted to span elements. In minimal mode, the number of span elements is minimized.


  • minimal
  • yes
  • no

@string definitions

Expand the @string vars below during imports

default: yes

When enabled, BBT will prepend the @strings section below to all Bib(La)TeX imports and will expand the strings during export.

If a field could be a @string reference, export it as an unbraced @string reference

default: No

When enabled, BBT will try to retain @string vars its exports unsurrounded by braces; when set to ‘detect’, single-word strings will be assumed to be externally-defined @string vars, when set to ‘match’, only @strings declared in the @strings section of the preferences will be preserved. If you don’t know what this means, leave it off.


  • No
  • Assume single-word fields to be @string vars
  • Match against the @string declarations below
  • Match against the @string declarations and their values below

Citation keys

Warn me when changing citation keys in bulk

default: 10

For those who are curious about what the Clear/Generate BibTeX key right-click options do, this will warn you if you are doing this on more than 10 (default) at the same time, to prevent your curiosity from changing all your citation keys at once.