>
>>
>> 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!