emacs-humanities
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [emacs-humanities] How do you use Ebib?


From: Joost Kremers
Subject: Re: [emacs-humanities] How do you use Ebib?
Date: Thu, 25 Feb 2021 15:53:55 +0100
User-agent: mu4e 1.5.8; emacs 27.1.91

Hi Göktuğ,

Obviously as Ebib's maintainer I feel compelled to reply :-) but I hope that
won't stop anyone else from chiming in.

First off, let me say that Ebib is perhaps somewhat more limited in scope than
what you describe here about Zotero (which I've never used, so I can't really
compare). That's not a problem because you have Emacs at your fingertips. Some
of the things you mention are better handled by e.g., Org mode.

Having said that, let me offer a few comments:

> I use Zotero to manage both references and their associated files,
> sometimes more than one.

Essentially, Ebib just shows you the contents of your .bib files. It doesn't
keep an sqlite database or something: your .bib files *are* the database.

This also means that Ebib doesn't really manage external files, at least not
directly. External files associated with an entry should be listed in the `file`
field, references to the internet can be placed in the `url` field.

Of course, you can open files and URLs from within Ebib, but the way you manage
and organise your external files is essentially up to you.

>  I have various collections: ‘inbox’ receives
> new papers etc I find and is basically a reading list.  ‘software’ is
> for citations of various software packages like R, Praat, etc. that I
> might need. Apart from these, I make collections for assignments (I’m an
> MA student and currently I’m studying for my thesis) and sometimes for
> topics (e.g. I have ‘sex&gender’, ‘statistics’, etc. as topics).

You can create different .bib files for each of these. You can copy entries from
one .bib file to another with Ebib (it's called "exporting" in the manual), or
use Emacs' kill ring to do so.

Alternatively, you can create a single "main" .bib file and have a so-called
"dependent" .bib file for different projects. Dependent databases (i.e., .bib
files) are subsets of their main database; edits you make to entries in the main
database show up in the dependent databases as well, and vice versa.

A main database can have any number of dependent databases, but a dependent
database can only have one main database. (That's a limitation that I wouldn't
mind eliminating, but that's currently not a priority.)

> I use Better BibTeX with Zotero to autogenerate my keys, 

Keys can be autogenerated by Ebib (it uses the functionality of `bibtex.el` for
this).

> and to
> autoupdate BibLaTeX exports of collections while the relevant project is
> active (I use biblatex exclusively; 

Ebib fully supports biblatex, but by default it assumes your files are BibTeX
files (which I really want to change, but I'm hesitant because every
introduction to LaTeX still seems to present BibTeX as *the* bibliography
solution...) If you want to use biblatex, you need to configure Ebib first.

> and I turn off auto-exports for
> projects after they are concluded).

Since the .bib files *are* the database, there's no need for auto-updating. If
you use the main-dependent databases mechanism, you can simply convert the
dependent database into a normal database when you conclude a project. At that
point it loses its connection to the main database and edits to the latter won't
show up in the former (or vice versa).

> I copy around references into multiple collections as need appears, and
> I like that the relevant files are not duplicated, because I heavily
> annotate PDFs.

As mentioned, external files are listed in the `file` field, usually with their
full path, so copying an entry to another database retains the reference
to the file.

> I make a lot of use of org-zotxt to link to items in collections when
> preparing reading lists, and also in my reading notes file
> (Reading.org), I create a heading and under it link to the relevant
> entry in Zotero, even if I have no reading notes separate from PDF
> annots for that particular item.  I’ve modified org-zotxt links to
> export to ‘\fullcite’ for that purpose.

Here I'm not entirely sure I understand your workflow, probably because I don't
know Zotero. Ebib can manage an external notes file (by default in Org format),
and it can manage an external reading list (also as an Org file). The two are
separate, but Ebib tries to be flexible with regard to the exact format of both
files, so it shouldn't be difficult to have the notes file double as a reading
list. (The only limitation would be that Ebib won't show you that an entry is on
your reading list and you won't be able to add items to your reading list or
mark them as read from within Ebib; you'd have to go to Org file to do that.)

> One of the Zotero features I make heavy use of is the ‘Save to Zotero’
> bookmarklet.  I’ve adapted it to Qutebrowser where ‘,z’ triggers the
> bookmarklet and the current ‘thing’ is saved to Zotero.

Honestly, I don't know what this means... Anything that you want to import into
Ebib must be in .bib format, which might be a limitation. (I don't know what
Zotero offers in this respect.) Ebib doesn't offer much in the way of importing
.bib entries from the internet. There are tools for that in Emacs, but I never
used them (they are pretty useless in my field), so I've never had a chance to
properly integrate them with Ebib.

If a website offers a formatted .bib entry that you can copy, then you can yank
it into Ebib (assuming your kill ring integrates with the system clipboard).
Personally, I rarely do that, because I find that such .bib entries often need a
lot of cleaning up. So I tend to paste them into the scratch buffer, clean them
up and then import them into Ebib (`M-x ebib-import RET`). External files such
as PDF files, once they're downloaded to your computer, can be imported into the
database with `ebib-import-file`, which moves the file to a user-defined
location, renames it to something reflecting the key of the relevant entry (or
not, if you don't want that to happen, it's all configurable), and puts a
reference into the `file` field.

There is a function (contributed by a user) that can pull a PDF from the
internet, but currently it's only configured for a one or two sites, and I do
not know how reliable it is, because I'm rarely able to use it myself.

> I am thinking of how to be able to best move away from this.  I imagine
> reducing collections to a single core one plus project specific ones
> would help. Instead of topic collections, I’d create notes or separate
> org files on topics (e.g. Stats.org, GenderStudies.org,
> Linguistics.org::*Some cool research topic), and reference the relevant
> stuff from within them.  I could add an ‘ebib:citekey’ link type in Org
> mode (if not already done) 

Ebib comes with a package `org-ebib.el`, which provides such a link type. Though
currently it just jumps to the entry in Ebib.

Currently, Ebib assumes that you either have a single notes file for all of your
notes, or that each note goes into a separate file. I'm planning to change that
and make it possible to define multiple notes files, but I haven't implemented
that yet.

> to replace neat fns of org-zotxt like jumping
> to entry, opening the file, and exporting to \fullcite in LaTeX (for
> authoring in LaTeX I stick to using biblatex directly because it’s very
> flexible).  One thing I can’t really figure is how I’d do copying into
> various collections and managing files.  I’d really need to have single
> copies of files so that annotations don’t go out of sync.  Also, I’d
> like projects to have their own .bib files that I can check into VCS
> along with their files, so that when the project ends, those .bibs
> wouldn’t be affected by changes to the main library, thereby breaking
> the projects they are part of.

I suspect the main-dependent database mechanism could be helpful here, as I
mentioned above. External files (such as pdfs) are linked by their file path, so
copying an entry to another .bib file keeps the reference to the same file.
Notes are identified by the entry's key, so if you have two (independent) .bib
files with the same entry (specifically, the same entry key), they'll point to
the same external note.

> I also like to be able to have multiple exports of the same collection
> sometimes.  E.g., my thesis collection is exported to two locations:

As you say yourself, you'll need some other mechanism for this, because the .bib
file is the database.

I hope this answers some of your questions. If it raises any new ones, feel free
to ask.

Best,

Joost



-- 
Joost Kremers
Life has its moments



reply via email to

[Prev in Thread] Current Thread [Next in Thread]