Ebib is a program for managing BibTeX and BibLaTeX databases that runs inside Emacs. Ebib provides functions with which you can select a key from the database and have it inserted directly into your LaTeX text. Similar functionality is available for Markdown and Orgmode.
Ebib provides the standard capabilities that one would expect from a
BibTeX database manager:
.bib files can be opened, modified (adding,
deleting, modifying entries), searched, and saved. Apart from the
basics, Ebib has quite a few extra features that make managing your
Bib(La)TeX files easier.
- Visual representation distinguishing obligatory, optional and extra fields.
- Copy/cut/paste mechanism for quickly copying field values. (This fully integrates with Emacs’ kill ring.)
- Automatic loading of
.bibfiles upon start-up.
- Extensive user manual.
BibTeX / BibLaTeX
- Support for both BibTeX and BibLaTeX files.
- Creating and editing
@preambledefinitions is supported (
@comments are kept, but are not editable).
- BibTeX / BibLaTeX entry and field types can be customised, allowing adaptation for non-standard and personal bibliography styles.
- Automatic creation of entry keys (using the functionality of Emacs’
- Field values containing newlines are supported, allowing the creation of annotated bibliographies.
- Crossreferencing is supported, both BibTeX and BibLaTeX mechanisms.
- The database can be saved with the entries in the
.bibfile sorted on user-specified fields (useful in ConTeXt).
.bibfiles can be opened at the same time.
- Easily create a separate
.bibfile for a paper, article or book through a “slave” database.
- Databases can be merged; specific entries or
@stringdefinitions can be exported to other databases or to a
- Quickly jump to any entry in any database using completion (especially useful when using Ivy or Helm).
- Simple regexp searches can be performed on a database, searching the contents of all fields of each entry.
- Complex search queries with logical
notoperators, built up interactively, can be performed, with the possibility of searching only specific fields. Search queries can be saved for later reuse.
LaTeX / Org / Markdown integration
- From within a LaTeX, Org mode or Pandoc document, it is possible to select a Bib(La)TeX key using standard Emacs completion, Ivy, or Helm, and insert a citation into the document. This can also be set up for other document formats that support automatic bibliographies.
- Inside Ebib, it is possible to push entries to a LaTeX / Org mode / Markdown buffer.
- Quick summary of entries into a
- Creating a
.bibfile from a
.bblfile, allowing you to create a
.bibfile for a LaTeX document containing only the references in the document.
- Entries can be imported from text buffers or from the
*scratch*buffer (allowing copy & paste of BibTeX entries, e.g. from the Internet).
- A URL stored in a BibTeX field can be extracted and sent to a browser.
- Files stored in a BibTeX field can be opened with user-configurable viewers.
- Support for maintaining an Org-based reading list that can be integrated with the user’s Org agenda.
- Support for keeping annotations in a separate notes file or notes directory.
- A list of possible keywords can be stored in a file to aid in maintaining
uniformity in keywords within and across
- A time stamp can be added to each new entry, allowing you to keep track of new additions in the database.
- (Parts of) databases can be printed, either as a list of references typeset by BibTeX / BibLaTeX, or directly as database entries.
- No lock-in. Use any other tool Emacs provides on your
.bibfiles and simply reload the file in Ebib afterwards.
Visually, Ebib is not very spectacular, but to get an impression of what it looks like, you can look at the following three screenshots. The first shows Ebib’s standard lay-out, with the list of entry keys in the top window and the fields of the currently highlighted entry in the bottom window. The field values displayed in a lighter gray colour come from the cross-referenced entry. (The colours Ebib uses are inherited from the current colour theme, but they can be customised independently.)
In the second image, which uses an alternative partial-frame layout, the string
"Geraci" is highlighted as the result of a text search. It also shows a buffer
with a note for the highlighted entry.
The third screenshot shows the strings buffer in the lower window, where you can
@String definitions in the database.
The complete user manual for Ebib is available in html format here. If Ebib is installed from Melpa, the manual is also available inside Emacs in Info format.
The easiest way to install Ebib is to use Melpa.
If you want to download the source, you can clone the git repository for Ebib, or get a tar ball from the Github releases page. Note that Ebib depends on parsebib, which therefore also needs to be installed.
If you want to ask a question or report an issue, you can send me an email, or, if you happen to have a Github account, open an issue on the Github issue tracker.