emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [ANN] org-bibtex.el --- convert between Org headings and bibtex


From: Thomas S. Dye
Subject: Re: [O] [ANN] org-bibtex.el --- convert between Org headings and bibtex entries
Date: Thu, 21 Apr 2011 06:36:35 -1000

Hi Eric,

On Apr 20, 2011, at 9:00 AM, Eric Schulte wrote:

Hi Tom,

"Thomas S. Dye" <address@hidden> writes:

Hi Eric,

This could be very useful and a significant enhancement to Org-mode
for note taking.  With it, library time can be spent almost entirely
within Org-mode, capturing bibliographic information and taking
reading notes.  It feels like the right level of functionality--
lightweight and easy to use, with lots of prompting material.


Thanks, I hope so.


I created an entry with org-bibtex-create and then another with org-
bibtex-read/write.  When I ran org-bibtex, only the second entry was
exported.  Also, the org-bibtex-read/write process mangled the bibtex
entry a bit, so the resulting .bib file wasn't useful.  Note the
addition of {} around the publisher and year, and the truncation of
multi-line entries.


I /believe/ I have fixed this issue. I am now using pre-existing bibtex functions for reading in entries, and for cleaning up entries written by
org-bibtex.


The org-bibtex-read/write process doesn't work on the example I sent. The read appears to work (though I can't find a buffer *org-bibtex- entries* afterwards), but the write inserts the headline asterisk then fails with progn: Wrong type argument: char-or-string-p, nil.


Can I suggest some changes?

1) In our multi-user environment, where several authors are
contributing to a master bibtex file, we depend on the key generating
algorithm of bibtex-mode to help weed out duplicate entries.   This
isn't 100% effective, but it catches lots of duplicates and saves us
time.  Would it be possible to lift this mechanism and use it in org-
bibtex to generate the CUSTOM_ID?


I've added a new variable `org-bibtex-autogen-keys' which when set to t
will result in auto-generated keys being used instead of prompting the
user to input such keys.


Beautiful!


2) It might be better to use the (generated) key as the Org headline,
instead of the title.  Titles can be longer than I find comfortable
for an Org-mode headline, whereas keys are usually about the right
length.


Hmm, I would tend to disagree here, but I think it may be a matter of
taste. Note that if you include a TITLE property in a headline then it
will be used instead of the contents of the headline, leaving you free
to put whatever information you want into the headline.  I've just
updated the headline creation so that it will create such a title
property as well as using the title as the headline, leaving you free to
subsequently change the headline.


That sounds right to me.  Thanks.


3) org-bibtex-cite seems like a natural next step, especially if it
offers a list of keys in the Org-mode buffer.


Meaning a function to allow tab-completion on keys... I could see this
being useful but I would imagine that the bib entries would generally
not live in the same buffer as the Org-mode text... rather I'd think
some sort of global registry would be preferable.


I guess it depends on how one uses the software. The use I envision is for note taking while doing background reading for a project. First, enter a reference with org-bibtex-create, then take notes while reading, and finally write a summary that might later be used in the project document. At this stage, org-bibtex hasn't been called, so the only place the key is present is in the Org-mode buffer. Inserting a reference then involves jumping back to the headline, opening the properties drawer, selecting the value of CUSTOM_ID, navigating back to the reference point and pasting in the key. A function that collects keys and then presents them in a list like the one used to choose TYPE would make this process very easy.

Do you mind my asking what your workflow is with org-bibtex?

All the best,
Tom
Thanks for the suggestions, bug reports, and examples!

Please do let me know if any of these issues remain -- Eric


Here are the details of my test run:

Existing bibtex entry:

@Book{tuggle94:_cultur_resour_naval_air_station_barber_point,
 author =    {H. David Tuggle and M. J. Tomonari-Tuggle and
                 D. Colt Denfeld},
 title =        {Cultural Resources of Naval Air Station, Barbers
                 Point: Summary, Assessment, and Inventory Research
                 Design: Task 1b: Archaeological Research Services
                 for the Proposed Cleanup, Disposal, and Reuse of
                 Naval Air Station, Barbers Point, O`ahu, Hawai`i},
 publisher =    iarii,
 year =         1994,
 series =    {Prepared for Belt Collins Hawaii},
 address =   {Honolulu},
 month =     {December}}

Org-mode tree:


* Schulte bibtex

** A journal title
  :PROPERTIES:
  :type:     article
  :AUTHOR:   A. N. Author
  :JOURNAL:  Journal of Statistical Software
  :YEAR:     1998
  :CUSTOM_ID: author_10:article
  :END:

** {Cultural Resources of Naval Air Station, Barbers
  :PROPERTIES:
  :TYPE:     book
  :CUSTOM_ID: tuggle94:_cultur_resour_naval_air_station_barber_point
  :MONTH:    December}
  :ADDRESS:  Honolulu
  :SERIES:   Prepared for Belt Collins Hawaii
  :YEAR:     1994
  :PUBLISHER: iarii
  :AUTHOR:   {H. David Tuggle and M. J. Tomonari-Tuggle and
  :END:

Org-bibtex output:

@book{tuggle94:_cultur_resour_naval_air_station_barber_point,
 author={{H. David Tuggle and M. J. Tomonari-Tuggle and},
 title={{Cultural Resources of Naval Air Station, Barbers},
 publisher={iarii},
 year={1994},
 series={Prepared for Belt Collins Hawaii},
 address={Honolulu},
 month={December}}
}

hth,
Tom

On Apr 19, 2011, at 1:52 PM, Eric Schulte wrote:

Hi,

In an attempt to organize my reading notes, I've written the following
tool which allows both for exporting Org-mode headlines with bibtex
meta-data to bibtex entries, and for reading existing bibtex entries
into Org-mode headings.

One nice feature of these functions is the ability to check that all
required fields are present in a given headline based on the bibtex
type
(e.g., :article, :inproceedings), and prompt for missing fields.

See the top of the elisp file for more usage information.
https://github.com/eschulte/org-bibtex/blob/master/org-bibtex.el

Cheers -- Eric

--
Eric Schulte
http://cs.unm.edu/~eschulte/




--
Eric Schulte
http://cs.unm.edu/~eschulte/




reply via email to

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