Configuration

The Better BibTeX Configuration can be found under the regular Zotero preferences pane, tab ‘Better Bib(La)TeX’.

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.

Citation keys

Citation key format

default: ​[auth:lower][shorttitle3_3][year]

Set the pattern used to generate citation keys. The format of the keys is documented here.

Force citation key to plain text

default: True

If you have deviated from the default citation key format pattern by specifying your own, you may wind up with non-ASCII characters in your citation keys. You can prevent that using the fold function at the appropriate place in your pattern, but checking this checkbox will just apply fold to all your keys.

Keep keys unique

default: within each library

This determines what happens if you pin a key to a value that is already in use in a different reference but not pinned there. Neither are ideal, you just get to pick your poison. If you let BBT change the non-pinned key by adding a postfix character, the citation key changes which could be problematic for existing papers. if you keep the non-pinned key as-is, your library now has duplicate keys.

Options:

  • across all libraries

  • within each library

LaTeX command

default: cite

Used for drag-and-drop/quick copy citations in LaTeX format. Set the desired LaTeX citation command here. If you set this to citep, drag-and-drop citations will yield \citep{key1,key2,...}

On conflict with a pinned key, non-pinned keys will be

default: kept (causes key duplicates)

This determines what happens if you pin a key to a value that is already in use in a different reference but not pinned there. Neither are ideal, you just get to pick your poison. If you let BBT change the non-pinned key by adding a postfix character, the citation key changes which could be problematic for existing papers. if you keep the non-pinned key as-is, your library now has duplicate keys.

Options:

  • postfixed (causes key changes)

  • kept (causes key duplicates)

QuickCopy format

default: LaTeX

Used for drag-and-drop/quick copy using Better BibTeX citekeys. In the Zotero “Export” pane, choose Better BibTeX Quick Copy as the default export format for quick copy, and choose the desired format for the drag-and-drop citations here.

Options:

  • LaTeX

  • Cite Keys

  • Pandoc

  • Org-mode (citekey)

  • Org-mode (item ID)

  • org-ref

  • RTF Scan

  • Atom (https://atom.io/packages/zotero-citations)

  • GitBook

  • Select link (citekey)

  • Select link (item ID)

Surround Pandoc citations with brackets

default: False

Used for drag-and-drop/quick copy citations in Pandoc format. You can use this option to select whether you want to have these pandoc citations surrounded with brackets or not.

Export

Abbreviation style

default: ``

Select the style for auto-abbreviation. Only applicable to Juris-M; in Zotero, the style for automatic abbreviation is not configurable.

Add URLs to BibTeX export

default: false

* BibLaTeX supports urls in your references natively; BibTeX does not. For this reason, URLs are omitted from BibTeX exports by default. Using this setting you can have them added to your exports either in a note field (not as clean, but compatible with BibTeX out of the box), or in a url field (requires extra packages to be loaded, or bibtex will error out).

Options:

  • false

  • in a note field

  • in a URL field (requires custom style for url field support)

Automatically abbreviate journal title if none is set explicitly

default: False

If set, generates journal abbreviations on export using the Zotero journal abbreviator, according to the abbreviation style selected in the list below the checkbox.

Disregard name prefixes when sorting

default: False

* Name handling is a lot more complex than I had ever thought it to be. A lot more complex. BibTeX has really limited ways of dealing with names with particles (van, von, de, etc). If you turn this on, BBT will add code to have van Gogh sorted under Gogh.

Export unicode as plain-text latex commands

default: False

* BibLaTeX actually has really good Unicode support, so you generally want this off. But for some geezers such as me it is simply more pleasing to have things like accented characters translated to their equivalent LaTeX constructs on export.

default: True

* BibTeX has really spotty Unicode support, so you generally want this on. It will translate things like accented characters to their equivalent LaTeX constructs on export.

Fields to omit from export (comma-separated)

default: ``

If there are some fields you don’t want in your bibtex files (such as note for example), add a list of them here, separated by comma’s.

Include JabRef-specific metadata

default: false

Export JabRef-specific information fields; timetamps and groups for collections.

Options:

  • false

  • for JabRef 3

  • for JabRef 4

Include comments about potential problems with the references

default: False

* Generate quality reports for exported references.

Use BibLaTeX extended name format (requires biblatex 3.5)

default: False

* Use the extended biber 2.7 format for names with particles - only works in BibLaTeX 3.5 or later. This biblatex has a new (less ambiguous) way to store creator names. It’s technically superior, but the LaTeX world moves slowly, so many people won’t have it yet. But if you’re an early adopter, you can enable it here

When a reference has both a DOI and a URL, export

default: both

* Does what it says on the tin, really. If a reference has both a DOI and an URL, you can choose to have them both exported, or either one of them.

Options:

  • both

  • DOI

  • URL

Automatic export

Automatic export

default: On Change

Determines when automatic exports are kicked off. Having it disabled still marks auto-exports as needing updates, so when you re-enable it, those exports will start. On-change means exports happen whenever a reference in the export changes/is added/is removed. On idle does more or less what Disabled (that is, no exports but mark as needing changes), but will kick off exports when your computer is idle. You mostly want this if your computer is performance-constrained (aka slow).

Options:

  • Disabled

  • On Change

  • When Idle

Advanced

Assume single-word strings to be externally-defined @string vars, and thus not surrounded by braces.

default: False

When enabled, single-word strings will be assumed to be externally-defined @string vars, and thus not surrounded by braces. If you don’t know what this means, leave it off.

Deterministically order references and fields; primarily for version control.

default: False

When on, BBT will deterministically order references on export. This is primarily interesting if you keep the exported file under some kind of version control. Comes at performance and memory consumption cost.

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.

import @string definitions

default: ``

If you have externally maintained @string vars paste them here and they will be resolved for subsequent imports

postscript

default: ``

Snippet of javascript to run after each reference generation.

Hidden preferences

The following settings are not exposed in the UI, but can be found under Preferences/Advanced/Config editor.

All are prefixed with extensions.zotero.translators.better-bibtex. in the table you will find there

autoExportIdleWait

default: 10

Number of seconds to wait after your system goes idle before kicking off auto-exports.

autoExportPrimeExportCacheBatch

default: 10

If cache priming is kicked off (see autoExportPrimeExportCacheThreshold), the cache will be primed in batches of autoExportPrimeExportCacheBatch. The lower this number is, the longer the priming will take (there’s a fixed per-prime overhead), but (since the priming uses exports under the hood) the larger it is, the longer the priming actions will lock the UI. The batch size is capped to the value of autoExportPrimeExportCacheThreshold.

autoExportPrimeExportCacheThreshold

default: 0

If an auto-export is triggered and there are more than autoExportPrimeExportCacheThreshold un-cached entries, prime the cache before starting the auto-export. This makes the export take longer in total, but since exports in Zotero lock up the UI, priming helps making the actual export run as fast as possible. Really only useful for large exports, but what counts as large is system-dependent, so you can play with this value. The default of 0 disables priming. This is a temporary measure until https://groups.google.com/d/msg/zotero-dev/lHYEtdgPHCE/nDUyxpFmAgAJ is implemented in Zotero.

autoPin

default: False

When on, BBT will automatically pin the first citekey it generates for an item.

biblatexExtendedDateFormat

default: True

Support for EDTF dates in biblatex

cacheFlushInterval

default: 5

How often the Better BibTeX database should be saved to disk. Defaults to once every 5 seconds. Note that your database is always saved when your computer goes idle, or when you exit Zotero.

citeprocNoteCitekey

default: False

Replaces the “note” field with the bibtex key during citation rendering in Word/Libreoffice. Main use-case is to help migrating word documents to pandoc. This setting only takes effect during startup, so if you change it, you will have to restart Zotero to have this take effect (or to disable it. Please disable it when done). You will want to use a custom CSL style (such as this) to make this work.

csquotes

default: ``

if you set csquotes to a string of character pairs, each pair will be assumed to be the open and close parts of a pair and will be replaced with a \\enquote{...} construct.

debugLog

default: ``

!

itemObserverDelay

default: 100

I’ve had reports where Zotero notifies extensions that references have changed, but if BBT then actually retrieves those same references, Zotero complains they “haven’t been saved yet”. Super. This preference sets the number of microseconds BBT should wait after being notified before acting on the changed references.

kuroshiro

default: False

When on, BBT will load kuroshiro for romajization in citekeys. This uses a lot of memory, easily 100MB. If you don’t have Japanese titles/names, keep this off.

lockedInit

default: False

BBT locks the UI during startup because I have been told in no uncertain terms I am not to touch the Zotero database before I get an all-clear from Zotero. This all-clear takes a fair amount of time. As BBT needs database access for generating keys, and everything in BBT depends on the keys being present, it is absolutely safest to make sure BBT initialization has completed before freeing the UI. I want to stress that during most of the lock-time, BBT is simply waiting for Zotero to complete its own initialization; try to do an export of any kind (not just BBT) or to import new references directly after Zotero has started and you’ll notice that it may take a while before Zotero reacts. The lockout just puts a face on this hidden init, and prevents nasty race conditions between the BBT and Zotero initialization leading to unpredictable breakage occasionally.

If you however cannot stand the lockout during startup and you want to live dangerously, you can turn this off and hope that no race conditions bite you. If you turn this on and experience problems, you are welcome to file a bug report and I will see what I can do, but be prepared for the answer to be “turn this back on for now”.

This is EXPERIMENTAL and this preference may disappear at any moment without notice.

parseParticles

default: True

Name particle handling

relativeFilePaths

default: False

When exporting a Bib(La)TeX file, if the attachments are stored anywhere under the directory the bibliography is exported to, use relative paths to those attachments. Caching is disabled when this option is on, so it affects performance.

scrubDatabase

default: False

Finds potential problems in the database and fixes those. This runs extremely slow at startup, don’t unable this unless explicitly asked to.

skipWords

default: a,ab,aboard,about,above,across,after,against,al,along,amid,among,an,and,anti,around,as,at,before,behind,below,beneath,beside,besides,between,beyond,but,by,d,da,das,de,del,dell,dello,dei,degli,della,dell,delle,dem,den,der,des,despite,die,do,down,du,during,ein,eine,einem,einen,einer,eines,el,en,et,except,for,from,gli,i,il,in,inside,into,is,l,la,las,le,les,like,lo,los,near,nor,of,off,on,onto,or,over,past,per,plus,round,save,since,so,some,sur,than,the,through,to,toward,towards,un,una,unas,under,underneath,une,unlike,uno,unos,until,up,upon,versus,via,von,while,with,within,without,yet,zu,zum

list of words to skip in title when generating citation keys

suppressTitleCase

default: False

If you’re dead-set on ignoring both BibTeX/BibLaTeX best practice and the Zotero recommendations on title/sentence casing, set this preference to “true” to suppress title casing for English references.


This site is open source. Improve this page