"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
;formatting
(lambda (keyword desc format)
(cond
- ((eq format 'html) (format "(<eqref>%s</eqref>)" 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
"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)
;; 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