On Sat, Jan 7, 2017 at 8:23 AM John Kitchin wrote: > > > >> > >> 2. If you click on a citation link, you can select an action to copy the > >> formatted entry for that key. > > > > > > I had trouble with this. I constructed a minimal emacs config: > > > > #+BEGIN_SRC emacs-lisp > > ;;; elpa interface > > (setq package-archives ()) > > (add-to-list 'package-archives '("marmalade" . " > > http://marmalade-repo.org/packages/")) > > (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/ > ")) > > (add-to-list 'package-archives '("org" . "http://orgmode.org/elpa/") t) > > (add-to-list 'package-archives '("melpa" . " > > http://melpa.milkbox.net/packages/") t) > > ;; basic initialization, (require) non-ELPA packages, etc. > > (package-initialize) > > > > (require 'cl) > > (require 'org) > > (require 'helm-config) > > (require 'helm) > > (require 'helm-bibtex) > > > > ;; see org-ref for use of these variables > > (setq org-ref-bibliography-notes "~/Bibliography/notes.org" > > org-ref-default-bibliography '("~/Bibliography/Bibliography.bib") > > org-ref-pdf-directory "~/Bibliography/files/") > > > > (setq bibtex-completion-bibliography "~/Bibliography/Bibliography.bib" > > bibtex-completion-library-path "~/Bibliography/files" > > ) > > > > ;; org-define-error > > ;; for whatever reason, org wasn't finding this > > (defun org-define-error (name message) > > "Define NAME as a new error signal. > > MESSAGE is a string that will be output to the echo area if such > > an error is signaled without being caught by a `condition-case'. > > Implements `define-error' for older emacsen." > > (if (fboundp 'define-error) (define-error name message) > > (put name 'error-conditions > > (copy-sequence (cons name (get 'error 'error-conditions)))))) > > > > (setq org-ref-formatted-citation-backend "org") > > (setq org-ref-completion-library 'org-ref-helm-bibtex) > > > > (require 'org-ref) > > > > #+END_SRC > > It is pretty weird about org-define-error. It is in org-compat.el. I am > using org-9. > > > The action proceeds without errors, but nothing seems to be copied ot the > > clipboard. > > > >> > >> 3. On a bibtex entry, you can use the org-ref-bibtex-hydra/body to copy > >> a formatted string of the entry. > >> > > this works great. Obviously I need to learn how to use hydra... > > I go back and forth on liking ivy/hydra vs helm. > > >> You would want to have these settings with a new org-ref: > >> (setq org-ref-formatted-citation-backend "org") > >> > >> (setf (cdr (assoc "book" (cdr (assoc "org" > >> org-ref-formatted-citation-formats)))) > >> "${author} ${year}. /${title}/, ${address}:${publisher}. [[${url}]]") > >> > >> Then you can insert the citation and get this (there is no address for > >> the publisher in my entry). With helm bibtex as the backend, you would > >> type C-c ], select an entry, and press f8 (or tab and select the insert > >> formatted action). In the ivy backend, you type M-o f. Both of them > >> support multiple selections. > > > > Yeah, this is awesome, thank you. it's F7 though, not F8. > > could be, the key is related to the number/order of actions in helm-bibtex. > >> > >> > >> > >> That entry type isn't defined in the formats (there should be a default > >> entry, but it isn't formatted the way you want), but you could add it > > like this: > >> > >> > >> (push '("misc" . "${author} ${year}. /${title}/, > > [[${howpublished}]]")(cdr (assoc "org" > >> org-ref-formatted-citation-formats))) > >> > > > > got it now. This is great, thanks. Moving forward now that you've > solved > > my last problem... for properly formatted citations, is latex the only > > fully supported publication type? What about, say, pandoc md or odt? > > > > Thank you thank you thank you! > > org-ref has some support to export citations in latex, html, org, > md/pandoc and text. I do not know how good it is, but the framework for > it mostly exists. > > > I rediscovered this thread recently and found it very helpful. Hope the necroposting isn't annoying to others. Using a current org-ref, I was able to use these hints to make my life quite a bit easier when writing syllabi. I'm just inserting formatted citations for course texts; this is a bit different from most uses of org-ref. I want the text to be as readable as possible, and to include a link to the resource if it exists online, or to ignore the url field if it doesn't exist. I did this by lightly modifying ~org-ref-formatted-citation-formats~ and then modifying the function org-ref uses to insert formatted citations: ----------- (defun org-ref-format-bibtex-entry (entry) "Return a formatted citation for the bibtex entry at point. Formats are from `org-ref-formatted-citation-formats'. The variable `org-ref-formatted-citation-backend' determines the set of format strings used." (save-excursion (bibtex-beginning-of-entry) (let* ((formats (cdr (assoc org-ref-formatted-citation-backend org-ref-formatted-citation-formats))) (format-string) (ref)) (if (null entry) "!!! No entry found !!!" (setq format-string (cdr (or (assoc (downcase (bibtex-completion-get-value "=type=" entry)) formats) (assoc nil formats)))) (if (and (string-equal org-ref-formatted-citation-backend "org" ) (bibtex-completion-get-value "url" entry)) (setq format-string (replace-regexp-in-string "${title}" "[[${url}][${title}]]" format-string))) (setq ref (s-format format-string 'bibtex-completion-apa-get-value entry)) (replace-regexp-in-string "\\([.?!]\\)\\." "\\1" ref))))) --------------- The relevant section is the "if" near hte end of the function: (if (and (string-equal org-ref-formatted-citation-backend "org" ) (bibtex-completion-get-value "url" entry)) (setq format-string (replace-regexp-in-string "${title}" "[[${url}][${title}]]" format-string))) I thought it might possibly be useful for others -- like, it might be nice to use when composing emails etc -- so I figured I'd post it here. And thanks again esp to John for this tool!