From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jorge A. Alfaro Murillo" Subject: Re: managing articles in my personal library, and their citational material, using org mode instead of bibtex Date: Wed, 20 Nov 2013 19:49:25 -0500 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=089e013cbdf21bb6e104eba546e5 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40188) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VjISr-0007sF-JD for emacs-orgmode@gnu.org; Wed, 20 Nov 2013 19:49:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VjISo-0000Xn-KU for emacs-orgmode@gnu.org; Wed, 20 Nov 2013 19:49:49 -0500 Received: from mail-vc0-x22c.google.com ([2607:f8b0:400c:c03::22c]:34023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VjISo-0000Xf-Bd for emacs-orgmode@gnu.org; Wed, 20 Nov 2013 19:49:46 -0500 Received: by mail-vc0-f172.google.com with SMTP id ij19so6508985vcb.3 for ; Wed, 20 Nov 2013 16:49:45 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Alan L Tyree Cc: emacs-orgmode@gnu.org --089e013cbdf21bb6e104eba546e5 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable I once tried to do something similar in org mode, at the end I thought I was doing twice the work, so I ended up with just one big .bib file. I copy the bib info from the website and then I have a function to yank it a little bit cleaner into my bib file, something like this: (defun bibtex-yank-citation () "Yanks a citation in a .bib file. Eliminates several fields, removes the key for the entry, and changes the abstract field for an annote field." (interactive) (goto-char (point-max)) (let ((position (point))) (insert (current-kill 0)) (goto-char position) (re-search-forward "\\(@.+?{\\).+?," nil t) (replace-match "\\1," nil nil) (goto-char position) (while (re-search-forward "%" nil t) (replace-match "\\\\%" nil nil)) (goto-char position) (while (re-search-forward "=92" nil t) (replace-match "'" nil nil)) (goto-char position) (while (re-search-forward "=E1" nil t) (replace-match "{\\\\\'a}" nil nil)) (goto-char position) (while (re-search-forward "=E9" nil t) (replace-match "{\\\\\'e}" nil nil)) (goto-char position) (while (re-search-forward "=ED" nil t) (replace-match "{\\\\\'i}" nil nil)) (goto-char position) (while (re-search-forward "=F3" nil t) (replace-match "{\\\\\'o}" nil nil)) (goto-char position) (while (re-search-forward "=FA" nil t) (replace-match "{\\\\\'u}" nil nil)) (goto-char position) (while (re-search-forward "=F1" nil t) (replace-match "{\\\\~n}" nil nil)) (goto-char position) (while (re-search-forward "=E7" nil t) (replace-match "{\\\\c{c}}" nil nil)) (goto-char position) (while (re-search-forward "=96" nil t) (replace-match "-" nil nil)) (goto-char position) (delete-matching-lines "^[[:space:]]*\\(keywords\\)\\|\\(note\\)\\|\\(url\\)\\|\\(jstor\\)\\|\\(do= i\\)\\|\\(issn\\)\\|\\(html\\)\\|\\(language\\)\\|\\(copyright\\)\\|\\(epri= nt\\)") (goto-char position) (while (re-search-forward "\\(^[[:space:]]*\\)abstract" nil t) (replace-match "annote" nil nil)))) It also removes the key, so that then I just add extra information into the annote field and then I generate the key with C-c C-c (bibtex-clean-entry). You can configure your key type very specifically. See all the variables bibtex-autokey- That takes care of the new bibtex entry without effort. Now I have (defun bibtex-kill-ring-save-key () "Kill-ring-save the bibtex key." (interactive) (let ((position (point))) (if (not (eq (point-max) position)) (forward-char)) (search-backward-regexp "^@" nil nil) (search-forward "{") (copy-region-as-kill (point) (funcall (lambda () (search-forward ",") (backward-char) (point)))) (goto-char position))) To save the key to the kill-ring, and then I save the paper with that filename under a unique folder. Finally I have a function that opens the respective pdf when the cursor is within one entry. And keys for the functions, bound to Hyper keys: (eval-after-load "bibtex" '(progn (define-key bibtex-mode-map (kbd "H-y") 'bibtex-yank-citation) (define-key bibtex-mode-map (kbd "H-r") 'bibtex-kill-ring-save-key) (define-key bibtex-mode-map (kbd "H-o") 'bibtex-open-reference-at-point))) I even have a similar function that I use globally: (defun open-reference-at-point () (interactive) (er/expand-region 2) (let* ((beg (region-beginning)) (end (region-end)) (article-name (buffer-substring beg end))) (call-process "evince" nil 0 nil (concat "~/documents/references/articles/" article-name ".pdf"))) (keyboard-quit)) So if I am in LaTeX, it is enough to call open-reference-at-point over the text in \cite{...} and the pdf opens automatically. As you can see everything just depends on using one folder for all the references, one file for all the bib entries and the same name of the key dot pdf for the pdf name. And you end up with an automatically super good documented bib file. Which is very handy when you call C-c [ in LaTeX (reftex-citation) and just vaguely remember something about what you want to cite. Also if you want to open a certain reference you can search your well documented bib file and open the reference with one key. One last thing to get navigation a la org mode (C-c C-p and C-c C-n) and folding with TAB in your bib file: (defun bibtex-previous-entry () "Go to the previous bibtex entry." (interactive) (search-backward-regexp "^@" nil nil 2) (search-forward "{")) (defun bibtex-next-entry () "Go to the next bibtex entry." (interactive) (search-forward-regexp "^@") (search-forward "{")) (add-hook 'bibtex-mode-hook (lambda () (hs-minor-mode) (hs-hide-all))) (eval-after-load "bibtex" '(progn (define-key bibtex-mode-map (kbd "") 'hs-toggle-hiding) (define-key bibtex-mode-map (kbd "C-c C-p") 'bibtex-previous-entry) (define-key bibtex-mode-map (kbd "C-c C-n") 'bibtex-next-entry))) This almost makes you forget that you are actually in a bib file and not an org-mode file. Cheers, Jorge. On 20/11/13 14:37, Eric Schulte wrote: > Alan L Tyree writes: > >> On 20/11/13 03:25, Eric Schulte wrote: >>> Ian Barton writes: >>> >>>> On 19/11/13 01:40, Christopher W. Ryan wrote: >>>>> Not sure "citational" is even a word, but hopefully it conveys my meaning! >>>>> >>>>> I've been using LaTeX for academic writing and reading for quite some >>>>> time, with emacs as my editor. I'm pretty familiar with managing a .bib >>>>> file containing all the references I've collected, and using it in LaTeX >>>>> \cite commands. >>>>> >>>>> I've come to org-mode more recently. I'm trying to imagine how I migh= t >>>>> use it to manage my "personal library." I have a directory full of pd= f >>>>> files, each a downloaded article. Some articles I reference in papers I >>>>> write; others I just read and want to keep. I also have a .bib file >>>>> where I put the citational material for all those articles. Whenever = I >>>>> download an article, I add its entry to my .bib file. I tend to manag= e >>>>> this with JabRef because it searches Medline so easily, but I also will >>>>> edit the .bib file directly when necessary. >>>>> >>>>> I like the idea of an org file containing the citational information >>>>> (authors, title, journal, etc) *plus* links to the pdfs on my hard >>>>> drive, or on the internet. I could also include my notes about the >>>>> articles. But what would that org file look like? How do I insert a >>>>> reference to an article into the org file which contains the article = I >>>>> am writing? >>>>> >>>>> I'd be grateful for any explanations, or links to tutorials. >>>>> >>>> Can't help with managing the citations in org, as the last time I had >>>> to do this I was using a card index file:) >>>> >>>> However, to address your other questions one way of doing this would >>>> be to create an org file with a heading for each article: >>>> >>>> * Article 1. >>>> Here are some notes. >>>> >>>> * Article 2 >>>> My notes >>>> >>> I've been using such an org file for most of grad school and I couldn't >>> be happier with the results. I have a single reading.org file with one >>> top-level entry for each article I read. Currently at 533 articles >>> (many still tagged TODO) and 16,558 lines. >>> >>> To create each headline, I first copy the bibtex information onto my >>> clipboard, then I call `org-bibtex-yank' which converts the bibtex >>> information into a headline with properties. E.g., >>> >>> * Software mutational robustness >>> :PROPERTIES: >>> :TITLE: Software mutational robustness >>> :BTYPE: article >>> :CUSTOM_ID: schulte2013software >>> :YEAR: 2013 >>> :ISSN: 1389-2576 >>> :JOURNAL: Genetic Programming and Evolvable Machines >>> :DOI: 10.1007/s10710-013-9195-8 >>> :URL: http://dx.doi.org/10.1007/s10710-013-9195-8 >>> :PUBLISHER: Springer US >>> :KEYWORDS: Mutational robustness; Genetic programming; Mutation testing; Proactive diversity; N-version programming; Neutral landscapes >>> :AUTHOR: Schulte, Eric and Fry, ZacharyP. and Fast, Ethan and Weimer, Westley and Forrest, Stephanie >>> :PAGES: 1-32 >>> :LANGUAGE: English >>> :END: >>> file:papers/10.1007_s10710-013-9195-8.pdf >>> >>> The arXiv preprint is up at http://arxiv.org/abs/1204.4224. >>> >>> More notes... >>> >> Is there some easy way to import entire bibtex files in this way? >> > org-bibtex-import-from-file > >> I find citations to be frustrating. Is there some way that bibtex (or >> org files such as the above) can be used to enter citations in an org >> file so that they are exported correctly by the different exporters? >> >> Or is there someplace where all this information is gathered and I >> just am too blind to see it? >> > I don't know, I personally use org-bibtex-export-to-kill-ring to convert > citations to bibtex individually and manually. I think I have a terminology problem. What I mean is to enter something like \cite{mann82} in the text and have it spit out (Mann 1982) in each and every export as well as constructing an entry for the bibliography. Of course, the actual form of the output should be configurable to some extent, but I'd be happy with one form that always comes out the same. Is that possible? I'm currently fudging the issue by entering a Markdown style entry in the text, for example [@mann82:_legal_aspec_money], exporting to Markdown and then using Pandoc to get the final result. Not elegant. Cheers, Alan >> Thanks for any help. >> Alan >> >> --=20 Alan L Tyree http://www2.austlii.edu.au/~alan Tel: 04 2748 6206 sip:typhoon@iptel.org --089e013cbdf21bb6e104eba546e5 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable
I once tried to do something simi= lar in org mode, at the end I thought I was doing twice the work, so I ende= d up with just one big .bib file.

I copy the bib info from the= website and then I have a function to yank it a little bit cleaner into my= bib file, something like this:

=A0 (defun bibtex-yank-citation ()
=A0=A0=A0 "Yanks a citation = in a .bib file. Eliminates several fields,
=A0 removes the key for the e= ntry, and changes the abstract field for
=A0 an annote field."
= =A0=A0=A0 (interactive)
=A0=A0=A0 (goto-char (point-max))
=A0=A0=A0 (let ((position (point)))=A0=A0=A0=A0=A0 (insert (current-kill 0))
=A0=A0=A0=A0=A0 (goto-char po= sition)
=A0=A0=A0=A0=A0 (re-search-forward "\\(@.+?{\\).+?," n= il t)
=A0=A0=A0=A0=A0 (replace-match "\\1," nil nil)
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-search-f= orward "%" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (replac= e-match "\\\\%" nil nil))
=A0=A0=A0=A0=A0 (goto-char position)=
=A0=A0=A0=A0=A0 (while (re-search-forward "=92" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (replace-match "'" nil n= il))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-= search-forward "=E1" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 (replace-match "{\\\\\'a}" nil nil))
=A0=A0=A0=A0=A0 (= goto-char position)
=A0=A0=A0=A0=A0 (while (re-search-forward "=E9" nil t)
=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (replace-match "{\\\\\'e}" nil= nil))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (r= e-search-forward "=ED" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 (replace-match "{\\\\\'i}" nil nil))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-search-f= orward "=F3" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (repl= ace-match "{\\\\\'o}" nil nil))
=A0=A0=A0=A0=A0 (goto-char= position)
=A0=A0=A0=A0=A0 (while (re-search-forward "=FA" nil= t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (replace-match "{\\\\\'u}&quo= t; nil nil))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (wh= ile (re-search-forward "=F1" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 (replace-match "{\\\\~n}" nil nil))
=A0=A0=A0=A0= =A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-search-forward "=E7" nil t)
=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (replace-match "{\\\\c{c}}" nil ni= l))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-s= earch-forward "=96" nil t)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 (replace-match "-" nil nil))
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (delete-matching-li= nes
=A0=A0=A0=A0=A0=A0 "^[[:space:]]*\\(keywords\\)\\|\\(note\\)\\= |\\(url\\)\\|\\(jstor\\)\\|\\(doi\\)\\|\\(issn\\)\\|\\(html\\)\\|\\(languag= e\\)\\|\\(copyright\\)\\|\\(eprint\\)")
=A0=A0=A0=A0=A0 (goto-char position)
=A0=A0=A0=A0=A0 (while (re-search-f= orward "\\(^[[:space:]]*\\)abstract" nil t)
=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 (replace-match "annote" nil nil))))


It also removes the key, so that then I just add extra informa= tion into the annote field and then I generate the key with C-c C-c (bibtex= -clean-entry). You can configure your key type very specifically. See all t= he variables bibtex-autokey-

That takes care of the new bibtex entry without effort= . Now I have

=A0 (defun bibtex-kill-ring-save-key ()
=A0=A0=A0 &q= uot;Kill-ring-save the bibtex key."
=A0=A0=A0 (interactive)
=A0= =A0=A0 (let ((position (point)))
=A0=A0=A0=A0=A0 (if (not (eq (point-max) position))
=A0=A0=A0=A0=A0=A0= =A0=A0=A0 (forward-char))
=A0=A0=A0=A0=A0 (search-backward-regexp "= ^@" nil nil)
=A0=A0=A0=A0=A0 (search-forward "{")
=A0= =A0=A0=A0=A0 (copy-region-as-kill (point)
=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (funcall (lambda () =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (search-forward ",")
=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (backward-char)
=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (point))))
=A0=A0=A0=A0=A0 (goto-char position)))
To save the key to the kill-ring, and then I save the paper with that = filename under a unique folder.

Finally I have a function= that opens the respective pdf when the cursor is within one entry. And key= s for the functions, bound to Hyper keys:
=A0 (eval-after-load "bibtex" '(progn
=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (d= efine-key bibtex-mode-map
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (kbd "H-y") &= #39;bibtex-yank-citation)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (define-key bibtex-mode-map =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (kbd "H-r") 'bibtex-kill-ring-save-key)=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 (define-key bibtex-mode-map
=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= (kbd "H-o") 'bibtex-open-reference-at-point)))

I even have a similar function that I use globally:
=A0= =A0=A0=A0=A0 (defun open-reference-at-point ()
=A0=A0=A0=A0=A0=A0=A0 (in= teractive)
=A0=A0=A0=A0=A0=A0=A0 (er/expand-region 2)
=A0=A0=A0=A0=A0= =A0=A0 (let* ((beg (region-beginning))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 (end (region-end))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (article-name (buffer-substring beg= end)))
=A0=A0=A0=A0=A0=A0=A0=A0=A0 (call-process "evince" nil= 0 nil
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 (concat "~/documents/references/articles/"
=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0 article-name
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 ".pdf")))
=A0=A0=A0=A0=A0=A0=A0 (keyboard-q= uit))

So if I am in LaTeX, it is enough to call open-refe= rence-at-point over the text in \cite{...} and the pdf opens automatically.=

As you can see everything just depends on using one folder f= or all the references, one file for all the bib entries and the same name o= f the key dot pdf for the pdf name. And you end up with an automatically su= per good documented bib file. Which is very handy when you call C-c [ in La= TeX (reftex-citation) and just vaguely remember something about what you wa= nt to cite. Also if you want to open a certain reference you can search you= r well documented bib file and open the reference with one key.

One last thing to get navigation a la org mode (C-c C-p and = C-c C-n) and folding with TAB in your bib file:

=A0 (defun bibtex-pr= evious-entry ()
=A0=A0=A0 "Go to the previous bibtex entry."=A0=A0=A0 (interactive)
=A0=A0=A0 (search-backward-regexp "^@" nil nil 2)
=A0=A0=A0 (s= earch-forward "{"))
=A0
=A0 (defun bibtex-next-entry ()=A0=A0=A0 "Go to the next bibtex entry."
=A0=A0=A0 (interacti= ve)
=A0=A0=A0 (search-forward-regexp "^@")
=A0=A0=A0 (search-forward "{"))

=A0 (add-hook 'bibtex-= mode-hook (lambda ()
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (hs-minor-mode)
=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0 (hs-hide-all)))

=A0 (eval-after-load "bibtex" '= (progn
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (define-key bibtex-mode-map
=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (kbd = "<tab>") 'hs-toggle-hiding)
=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (define-= key bibtex-mode-map
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (kbd "C-c C-p") = 9;bibtex-previous-entry)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 (define-key bibtex-mode-map
=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 (kbd = "C-c C-n") 'bibtex-next-entry)))

This almos= t makes you forget that you are actually in a bib file and not an org-mode = file.

Cheers,

Jorge.
On 20/11/13 14:37, Eric Schulte wrote:
> Alan L Tyree <alantyree@gmail.com> writes:
>=
>> On 20/11/13 03:25, Eric Schulte wrote:
>>> Ian Barton = <lists@wilkesley.net> writ= es:
>>>
>>>> On 19/11/13 01:40, Christopher W. R= yan wrote:
>>>>> Not sure "citational" is even a word, but ho= pefully it conveys my meaning!
>>>>>
>>>>&= gt; I've been using LaTeX for academic writing and reading for quite so= me
>>>>> time, with emacs as my editor. I'm pretty familiar= with managing a .bib
>>>>> file containing all the refer= ences I've collected, and using it in LaTeX
>>>>> \ci= te commands.
>>>>>
>>>>> I've come to org-mode more= recently. I'm trying to imagine how I might
>>>>> us= e it to manage my "personal library." I have a directory full of = pdf
>>>>> files, each a downloaded article. Some articles I refe= rence in papers I
>>>>> write; others I just read and wan= t to keep.=A0 I also have a .bib file
>>>>> where I put t= he citational material for all those articles. Whenever I
>>>>> download an article, I add its entry to my .bib file. = I tend to manage
>>>>> this with JabRef because it search= es Medline so easily, but I also will
>>>>> edit the .bib= file directly when necessary.
>>>>>
>>>>> I like the idea of an org file= containing the citational information
>>>>> (authors, ti= tle, journal, etc)=A0 *plus* links to the pdfs on my hard
>>>&g= t;> drive, or on the internet. I could also include my notes about the >>>>> articles. But what would that org file look like? How = do I insert a
>>>>> reference to an article into the org = file which contains the article I
>>>>> am writing?
>>>>>
>>>>> I'd be grateful for any ex= planations, or links to tutorials.
>>>>>
>>>&= gt; Can't help with managing the citations in org, as the last time I h= ad
>>>> to do this I was using a card index file:)
>>>= >
>>>> However, to address your other questions one way o= f doing this would
>>>> be to create an org file with a head= ing for each article:
>>>>
>>>> * Article 1.
>>>> Here = are some notes.
>>>>
>>>> * Article 2
>= >>> My notes
>>>>
>>> I've been usi= ng such an org file for most of grad school and I couldn't
>>> be happier with the results.=A0 I have a single reading.org file with one
>>> top-level en= try for each article I read.=A0 Currently at 533 articles
>>> (= many still tagged TODO) and 16,558 lines.
>>>
>>> To create each headline, I first copy the bibt= ex information onto my
>>> clipboard, then I call `org-bibtex-y= ank' which converts the bibtex
>>> information into a headl= ine with properties. E.g.,
>>>
>>>=A0=A0=A0=A0=A0=A0 * Software mutational robust= ness
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :PROPERTIES:
>>>= =A0=A0=A0=A0=A0=A0=A0=A0 :TITLE:=A0=A0=A0 Software mutational robustness>>>=A0=A0=A0=A0=A0=A0=A0=A0 :BTYPE:=A0=A0=A0 article
>>&= gt;=A0=A0=A0=A0=A0=A0=A0=A0 :CUSTOM_ID: schulte2013software
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :YEAR:=A0=A0=A0=A0 2013
>>>= ;=A0=A0=A0=A0=A0=A0=A0=A0 :ISSN:=A0=A0=A0=A0 1389-2576
>>>=A0= =A0=A0=A0=A0=A0=A0=A0 :JOURNAL:=A0 Genetic Programming and Evolvable Machin= es
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :DOI:=A0=A0=A0=A0=A0 10.1007/s10= 710-013-9195-8
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :URL:=A0=A0=A0=A0=A0 http://dx.doi.org/10.1007/s10710-013= -9195-8
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :PUBLISHER: Springer US=
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :KEYWORDS: Mutational robustness; = Genetic programming; Mutation testing; Proactive diversity; N-version progr= amming; Neutral landscapes
>>>=A0=A0=A0=A0=A0=A0=A0=A0 :AUTHOR:=A0=A0 Schulte, Eric and Fry, = ZacharyP. and Fast, Ethan and Weimer, Westley and Forrest, Stephanie
>= ;>>=A0=A0=A0=A0=A0=A0=A0=A0 :PAGES:=A0=A0=A0 1-32
>>>=A0= =A0=A0=A0=A0=A0=A0=A0 :LANGUAGE: English
>>>=A0=A0=A0=A0=A0=A0= =A0=A0 :END:
>>>=A0=A0=A0=A0=A0=A0 file:papers/10.1007_s10710-013-9195-8.pdf>>>
>>>=A0=A0=A0=A0=A0=A0 The arXiv preprint is up at= http://arxiv.org/abs/1204.4224<= /a>.
>>>
>>>=A0=A0=A0=A0=A0=A0 More notes...
>>>
>> Is= there some easy way to import entire bibtex files in this way?
>>=
> org-bibtex-import-from-file
>
>> I find citations t= o be frustrating. Is there some way that bibtex (or
>> org files such as the above) can be used to enter citations in an = org
>> file so that they are exported correctly by the different e= xporters?
>>
>> Or is there someplace where all this info= rmation is gathered and I
>> just am too blind to see it?
>>
> I don't know,= I personally use org-bibtex-export-to-kill-ring to convert
> citatio= ns to bibtex individually and manually.
I think I have a terminology pro= blem. What I mean is to enter
something like \cite{mann82} in the text and have it spit out (Mann
1982= ) in each and every export as well as constructing an entry for
the bibl= iography.

Of course, the actual form of the output should be configu= rable to
some extent, but I'd be happy with one form that always comes out thesame.

Is that possible? I'm currently fudging the issue by ent= ering a
Markdown style entry in the text, for example
[@mann82:_legal= _aspec_money], exporting to Markdown and then using
Pandoc to get the final result.

Not elegant.

Cheers,
Alan<= br>
>> Thanks for any help.
>> Alan
>>
>&g= t; <SNIP>


--
Alan L Tyree=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0
http://www2.austlii.edu.au/~alan
Tel:=A0 04 2748 6206=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 sip:typhoon@iptel.org

--089e013cbdf21bb6e104eba546e5--