Convert Figma logo to code with AI

retorquere logozotero-better-bibtex

Make Zotero effective for us LaTeX holdouts

5,190
284
5,190
39

Top Related Projects

9,964

Zotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share your research sources.

3,530

Graphical Java application for managing BibTeX and biblatex (.bib) databases

Zotero Translators

Quick Overview

Zotero Better BibTeX is an extension for Zotero, a free and open-source reference management software. It enhances Zotero's citation key generation and BibTeX/BibLaTeX export capabilities, making it easier for users to integrate Zotero with LaTeX workflows. The extension provides more control over citation keys and improves the overall BibTeX export process.

Pros

  • Customizable citation key format with advanced options
  • Improved BibTeX/BibLaTeX export with better handling of special characters and formatting
  • Automatic background export of the library to keep BibTeX files up-to-date
  • Integration with various LaTeX editors and bibliography managers

Cons

  • Requires some initial setup and configuration to fully utilize its features
  • May have a learning curve for users unfamiliar with BibTeX or LaTeX
  • Can potentially slow down Zotero performance if the library is very large
  • Occasional compatibility issues with Zotero updates

Getting Started

  1. Install Zotero from https://www.zotero.org/
  2. Download the Better BibTeX extension from the project's GitHub releases page
  3. In Zotero, go to Tools > Add-ons and click the gear icon
  4. Select "Install Add-on From File" and choose the downloaded .xpi file
  5. Restart Zotero
  6. Configure Better BibTeX by going to Edit > Preferences > Better BibTeX
  7. Set up your preferred citation key format and export settings
  8. Use the new "Export Library" option in Zotero to create BibTeX files with improved formatting

Note: This is not a code library, so code examples are not applicable.

Competitor Comparisons

9,964

Zotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share your research sources.

Pros of Zotero

  • Official Zotero repository with core functionality and features
  • Regularly updated and maintained by the Zotero team
  • Extensive documentation and community support

Cons of Zotero

  • Limited BibTeX export options and customization
  • Lacks some advanced citation key management features
  • May require additional plugins for specialized bibliography needs

Code Comparison

Zotero (core functionality):

Zotero.Item.prototype.getField = function (field, unformatted, includeBaseMapped) {
    var fieldID = Zotero.ItemFields.getID(field);
    if (!fieldID) {
        Zotero.debug("Invalid field '" + field + "' in Zotero.Item.getField()", 2);
        return '';
    }
    // ... (additional code)
};

Better BibTeX (enhanced BibTeX functionality):

Translator.prototype.doExport = function () {
    this.initialize();
    this.output = new Output(this);
    this.cacheable = true;
    this.exportDatabase();
    this.output.write();
};

The code comparison shows that Better BibTeX focuses on enhancing BibTeX export functionality, while Zotero's core codebase handles general item field management and retrieval.

3,530

Graphical Java application for managing BibTeX and biblatex (.bib) databases

Pros of JabRef

  • Standalone application, not dependent on another reference manager
  • Cross-platform compatibility (Windows, macOS, Linux)
  • Extensive import/export options for various file formats

Cons of JabRef

  • Steeper learning curve compared to Zotero with Better BibTeX
  • Less seamless integration with web browsers for capturing references
  • May require more manual entry and curation of bibliographic data

Code Comparison

JabRef (Java):

public class BibEntry implements Cloneable {
    private String id;
    private EntryType type;
    private Map<String, String> fields = new HashMap<>();
    // ...
}

Zotero Better BibTeX (JavaScript):

Zotero.Item = class {
  constructor(itemType) {
    this.itemType = itemType;
    this.fields = {};
    // ...
  }
};

Both projects use object-oriented approaches to represent bibliographic entries, but JabRef uses Java while Better BibTeX is implemented in JavaScript, reflecting their different environments (standalone application vs. browser extension).

Zotero Translators

Pros of zotero/translators

  • Native integration with Zotero, ensuring seamless compatibility
  • Wider range of supported citation formats and databases
  • Regular updates and maintenance by the core Zotero team

Cons of zotero/translators

  • Less customization options for BibTeX export
  • May not provide as advanced citation key generation features
  • Limited focus on BibTeX-specific improvements

Code Comparison

zotero/translators:

function doExport() {
    var item;
    while (item = Zotero.nextItem()) {
        Zotero.write(getBibTeXString(item));
    }
}

zotero-better-bibtex:

Translator.doExport = async function (items) {
    const biblatex = new BibLatexExporter(this.preferences);
    await biblatex.prepare(items);
    this.output.write(biblatex.output.join('\n'));
}

The zotero-better-bibtex code showcases a more modular approach with dedicated BibLaTeX exporter class, while zotero/translators uses a simpler, direct export function. Better BibTeX offers more advanced BibTeX-specific features and customization options, making it a preferred choice for users requiring extensive BibTeX functionality.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Better BibTeX for Zotero

Join the chat at https://gitter.im/retorquere/zotero-better-bibtex Greenkeeper badge

Better BibTeX (BBT) is an extension for Zotero and Juris-M that makes it easier to manage bibliographic data, especially for people authoring documents using text-based toolchains (e.g. based on LaTeX / Markdown).

Zotero 7 support

Better BibTeX is mostly compatible with the Zotero 7 beta; I am awaiting a change by the Zotero team to get to complete support. You can find the status of Zotero 7 support in the first post of #2522; if you find new problems (which are not still marked as unresolved in that top post), please report them as new issues, not by commenting on #2522.

Juris-M support

Juris-M is unfortunately not compatible with BBT at the moment. To my understanding, work is underway to get a Zotero-7-based Juris-M, and then BBT will work in Juris-M.

Features

Facilities for generating citation keys

  • Automatically generate citation keys without key clashes! Generate citation keys that take into account existing keys in your library even when they are not part of the items you export. Prevent random breakage!
  • Generate citation keys based on contents of your items using citekey formulas.
  • Set your own, stable citation keys, drag and drop LaTeX citations, add other custom BibLaTeX fields.

Conversion between formats and encodings

  • Zotero does all its work in UTF-8 Unicode, which is absolutely the right thing to do. Unfortunately, for those shackled to BibTeX and who cannot (yet) move to BibLaTeX, unicode is a major PITA. Also, Zotero supports some simple HTML markup in your items that Bib(La)TeX won't understand.

  • BBT will convert from/to HTML/LaTeX:

    • <i>...</i>\emph{...}/\textit{...}
    • <b>...</b>\textbf{...}
    • <sup>...</sup>\textsuperscript{...} and <sub>...</sub>\textsubscript{...}.

    More can be added on request.

    BBT contains a comprehensive list of LaTeX constructs, so stuff like \"{o} or \"o will be converted to their unicode equivalents on import (e.g., \"{o} to ö), and their unicode equivalents back to \"{o} if you have that option enabled (but you don't have to if you use BibLaTeX, which has fairly good Unicode support).

    If you need literal LaTeX in your export: surround it with <script>...</script> (or <pre>...</pre>, which do the same) markers.

Facilities for exporting data from Zotero

  • Highly customized exports.
  • Fixes date field exports: export dates like 'forthcoming' as 'forthcoming' instead of empty, but normalize valid dates to unambiguous international format.
  • Auto export of collections or entire libraries when they change.
  • Pull export from the embedded webserver.
  • Automatic journal abbreviation.

Getting started

To get started, read the installation instructions.

How does it work ?

At its core, BBT behaves like any Zotero import/export module; anywhere you can export or import bibliography items in Zotero, you'll find Better X listed among the choices.

If nothing else, you could keep your existing workflow as-is, and just enjoy the improved LaTeX ↔ unicode translation on import and export and more accurate field mapping.

Better BibTeX works from BibTeXing and Tame the BeaST for BibTeX, and The Biblatex Package for BibLaTeX, but since there isn't really a definitive manual for either format that is universally followed by Bib(La)TeX editors/processors, I'm pragmatic about implementing what works.

Got problems? We got fixes!

If you have any questions on BBT's use, do not hesitate to file a GitHub issue and ask for help.

If you're reporting a bug in BBT, please take a moment to glance through the support request guidelines; it will make sure I get your problem fixed as quick as possible. Clear bug reports commonly have really short time-to-fix, so if you report something, stick around -- it may be done as you wait.

The support request guidelines are very detailed, perhaps to the point of being off-putting, but please do not fret; these guidelines simply express my ideal bug submission. I of course prefer very clearly documented issue reports over fuzzy ones, but I prefer fuzzy ones over missed ones.

Sponsoring BBT

While the development needs of BBT are to a large extent covered by the generosity towards open-source developers of services such as github, my development system does require the occasional upgrade; also, I enjoy getting the occasional frivolous tech-toy that I wouldn't otherwise grant myself. While you should feel in no way obligated to pay for BBT, anything you can spare is very much appreciated. If you'd rather contribute a little bit each month (and a little means a lot) so I can save up for a replacement a year or so down the line, head on over to Patreon, but mind that Patreon takes a fairly large cut of what you give.

Many, many thanks, also to the existing contributors -- thanks to you I've hit my first target and have been able to replace my trusty macbook air with a newer macbook pro which has much more breathing room.

My github stats

Metrics