X-Git-Url: https://git.donarmstrong.com/?p=org-ref.git;a=blobdiff_plain;f=org-ref.el;h=72b4b528d9741b8722b4377d751474e5f0b60542;hp=837414428f13d7a36a524887b147820401d3d31f;hb=8758611b7670699ecaf4335933666a5967f39065;hpb=2a7b35e17931bb02e295a3cc3a55e2a8c20785e6 diff --git a/org-ref.el b/org-ref.el index 8374144..72b4b52 100644 --- a/org-ref.el +++ b/org-ref.el @@ -124,7 +124,8 @@ file, then open it. The default function is "User-defined function to get a filename from a bibtex key. The function must take a key as an argument, and return the path to the corresponding filename. The default is -`org-ref-get-pdf-filename'.") +`org-ref-get-pdf-filename'. An alternative value is +`org-ref-get-mendeley-filename'.") (defcustom org-ref-insert-cite-function @@ -1422,9 +1423,10 @@ Optional argument ARG Does nothing." ;formatting (lambda (keyword desc format) (cond - ((eq format 'html) (format "(%s)" path)) - ((eq format 'latex) - (format "\\eqref{%s}" keyword))))) + ((eq format 'latex) (format "\\eqref{%s}" keyword)) + ;;considering the fact that latex's the standard of math formulas, just use mathjax to render the html + ;;customize the variable 'org-html-mathjax-template' and 'org-html-mathjax-options' refering to 'autonumber' + ((eq format 'html) (format "\\eqref{%s}" keyword))))) ;; ** cite link @@ -1551,6 +1553,27 @@ falling back to what the user has set in `org-ref-default-bibliography'" "Return the pdf filename associated with a bibtex KEY." (format (concat org-ref-pdf-directory "%s.pdf") key)) + +(defun org-ref-get-mendeley-filename (key) + "Return the pdf filename indicated by mendeley file field. +Falls back to org-ref-get-pdf-filename if file filed does not exist. +Contributed by https://github.com/autosquid." + (let* ((results (org-ref-get-bibtex-key-and-file key)) + (bibfile (cdr results))) + (with-temp-buffer + (insert-file-contents bibfile) + (bibtex-set-dialect (parsebib-find-bibtex-dialect) t) + (bibtex-search-entry key nil 0) + (setq entry (bibtex-parse-entry)) + (let ((e (org-ref-reftex-get-bib-field "file" entry))) + (if (> (length e) 4) + (remove-if + (lambda (ch) + (find ch "{}\\")) + (format "/%s" (subseq e 1 (- (length e) 4)))) + (format (concat org-ref-pdf-directory "%s.pdf") key)))))) + + (defun org-ref-open-pdf-at-point () "Open the pdf for bibtex key under point if it exists." (interactive) @@ -3375,7 +3398,13 @@ This is a list of cons cells '((\"description\" . action)). The action function ;; example of adding your own function (add-to-list 'org-ref-helm-user-candidates - '("Example" . (lambda () (message-box "You did it!"))) + '("Open pdf in emacs" . (lambda () + + (find-file + (concat + org-ref-pdf-directory + (car (org-ref-get-bibtex-key-and-file)) + ".pdf")))) t) ;;;###autoload