]> git.donarmstrong.com Git - org-ref.git/blobdiff - org-ref.org
add try to get pdf if you do not have it
[org-ref.git] / org-ref.org
index ae39ab90db19d312ce8300a99a63dfab005434f9..d4dc2a40f5f0169b1067a2e72e79af7983b52910 100644 (file)
@@ -2652,7 +2652,6 @@ Sometimes it may be helpful to manually change the order of citations. These fun
 (add-hook 'org-shiftleft-hook (lambda () (org-ref-swap-citation-link -1)))
 #+END_SRC
 
 (add-hook 'org-shiftleft-hook (lambda () (org-ref-swap-citation-link -1)))
 #+END_SRC
 
-
 ** Lightweight messages about links
 To get a lighter weight message about the label, ref and cite links, we define a function that gives us the minibuffer message, without the menu. We add it to a hook that updates after every command, including cursor movements.
 
 ** Lightweight messages about links
 To get a lighter weight message about the label, ref and cite links, we define a function that gives us the minibuffer message, without the menu. We add it to a hook that updates after every command, including cursor movements.
 
@@ -2666,17 +2665,38 @@ ref:test citep:test  label:rett
       (goto-char (point-min))
       (when (re-search-forward
             (format "label:%s\\b" label) nil t)
       (goto-char (point-min))
       (when (re-search-forward
             (format "label:%s\\b" label) nil t)
-       (throw 'result (thing-at-point 'paragraph)))
+       (throw 'result (buffer-substring
+                       (progn
+                         (previous-line)
+                         (beginning-of-line)
+                         (point))
+                       (progn
+                         (forward-line 4)
+                         (point)))))
 
       (goto-char (point-min))
       (when (re-search-forward
             (format "\\label{%s}" label) nil t)
 
       (goto-char (point-min))
       (when (re-search-forward
             (format "\\label{%s}" label) nil t)
-       (throw 'result  (thing-at-point 'paragraph)))
+       (throw 'result (buffer-substring
+                       (progn
+                         (previous-line)
+                         (beginning-of-line)
+                         (point))
+                       (progn
+                         (forward-line 4)
+                         (point)))))
 
       (goto-char (point-min))
       (when (re-search-forward
             (format "^#\\+label:\\s-*\\(%s\\)\\b" label) nil t)
 
       (goto-char (point-min))
       (when (re-search-forward
             (format "^#\\+label:\\s-*\\(%s\\)\\b" label) nil t)
-       (throw 'result (thing-at-point 'paragraph)))
+       (throw 'result (buffer-substring
+                       (progn
+                         (previous-line)
+                         (beginning-of-line)
+                         (point))
+                       (progn
+                         (forward-line 4)
+                         (point)))))
 
       (goto-char (point-min))
       (when (re-search-forward
 
       (goto-char (point-min))
       (when (re-search-forward
@@ -2690,6 +2710,7 @@ ref:test citep:test  label:rett
                          (forward-line 4)
                          (point))))))))
 
                          (forward-line 4)
                          (point))))))))
 
+
 (defun org-ref-link-message ()
   "Print a minibuffer message about the link that point is on."
   (interactive)
 (defun org-ref-link-message ()
   "Print a minibuffer message about the link that point is on."
   (interactive)
@@ -2703,7 +2724,6 @@ ref:test citep:test  label:rett
 
      ;; message some context about the label we are referring to
      ((string= type "ref")
 
      ;; message some context about the label we are referring to
      ((string= type "ref")
-;; (message-box "%s" (org-element-property :path object))
       (message (org-ref-get-label-context
                (org-element-property :path object))))
 
       (message (org-ref-get-label-context
                (org-element-property :path object))))
 
@@ -2711,6 +2731,7 @@ ref:test citep:test  label:rett
      ((string= type "label")
       (let ((count (org-ref-count-labels
                    (org-element-property :path object))))
      ((string= type "label")
       (let ((count (org-ref-count-labels
                    (org-element-property :path object))))
+        ;; get plurality on occurrence correct
        (message (concat
                  (number-to-string count)
                  " occurence"
        (message (concat
                  (number-to-string count)
                  " occurence"
@@ -2718,6 +2739,7 @@ ref:test citep:test  label:rett
                            (> count 1))
                    "s"))))))))
 
                            (> count 1))
                    "s"))))))))
 
+
 (when org-ref-show-citation-on-enter
  (add-hook 'post-command-hook 'org-ref-link-message))
 #+END_SRC
 (when org-ref-show-citation-on-enter
  (add-hook 'post-command-hook 'org-ref-link-message))
 #+END_SRC
@@ -2852,14 +2874,26 @@ Checks for pdf and doi, and add appropriate functions."
                  (bibtex-autokey-get-field "doi"))))
         (candidates `(("Quit" . org-ref-citation-at-point)
                       ("Open bibtex entry" . org-ref-open-citation-at-point))))
                  (bibtex-autokey-get-field "doi"))))
         (candidates `(("Quit" . org-ref-citation-at-point)
                       ("Open bibtex entry" . org-ref-open-citation-at-point))))
+    ;; for some reason, when there is no doi or url, they are returned as "". I
+    ;; prefer nil so we correct this here.
+    (when (string= doi "") (setq doi nil))
+    (when (string= url "") (setq url nil))
 
 
-
-    (when (file-exists-p pdf-file)
+    (if (file-exists-p pdf-file)
+       (add-to-list
+        'candidates
+        '("Open pdf" . org-ref-open-pdf-at-point)
+        t
+        )
       (add-to-list
        'candidates
       (add-to-list
        'candidates
-       '("Open pdf" . org-ref-open-pdf-at-point)
-       t
-       ))
+       '("Try to get pdf" . (lambda ()
+                             (save-window-excursion
+                               (org-ref-open-citation-at-point)
+                                (bibtex-beginning-of-entry)
+                               (doi-utils-get-bibtex-entry-pdf))))
+       t))
+
 
     (add-to-list
      'candidates
 
     (add-to-list
      'candidates