(require 'key-chord)
;;; Code:
+;; * Custom variables
(defgroup jmax-bibtex nil
"Customization group for jmax-bibtex.")
:type 'string
:group 'jmax-bibtex)
-
+;; * Journal abbreviations
(defvar jmax-bibtex-journal-abbreviations
'(("ACAT" "ACS Catalysis" "ACS Catal.")
("AM" "Acta Materialia" "Acta Mater.")
(bibtex-fill-entry)
(bibtex-clean-entry)))
+;; * Non-ascii character replacement
;; see https://github.com/fxcoudert/tools/blob/master/doi2bib for more replacements
(defvar jmax-nonascii-latex-replacements
'()
("—" . "-")
("‘" . "'")
("’" . "'")
+ ("’" . "'")
("“" . "\"")
("’" . "'")
("”" . "\"")))
(add-hook 'org-ref-clean-bibtex-entry-hook 'jmax-replace-nonascii)
-
+;; * Title case transformations
(defvar jmax-lower-case-words
'("a" "an" "on" "and" "for"
"the" "of" "in")
(bibtex-clean-entry)
(bibtex-fill-entry))))
-
+;; * Navigation in bibtex file
(defun jmax-bibtex-next-entry (&optional n)
"Jump to the beginning of the next bibtex entry.
N is a prefix argument. If it is numeric, jump that many entries
;; add to bibtex-mode-hook
(add-hook 'bibtex-mode-hook 'jmax-bibtex-mode-keys)
-
+;; * Functions to act on an entry with a doi
(defun jmax-bibtex-entry-doi ()
"Get doi from entry at point."
(interactive)
(org-ref-open-bibtex-pdf))
+;; * Hydra menus
+;; ** Hydra menu for bibtex entries
;; hydra menu for actions on bibtex entries
(defhydra jmax-bibtex-hydra (:color blue)
"
_p_: Open pdf _y_: Copy key _n_: New entry _w_: WOS
_b_: Open url _f_: Copy formatted entry _o_: Copy entry _c_: WOS citing
-_r_: Refile entry _k_: Add keywords _d_: delete entry _r_: WOS related
+_r_: Refile entry _k_: Add keywords _d_: delete entry _a_: WOS related
_e_: Email entry _K_: Edit keywords _L_: clean entry _P_: Pubmed
_U_: Update entry _N_: Open notes _R_: Crossref _g_: Google Scholar
_s_: Sort entry _a_: Remove nonascii _h_: helm-bibtex _q_: quit
-_u_: Update field _f_: file funcs
+_u_: Update field _F_: file funcs
"
("p" org-ref-open-bibtex-pdf)
("P" jmax-bibtex-pubmed)
("w" jmax-bibtex-wos)
("c" jmax-bibtex-wos-citing)
- ("r" jmax-bibtex-wos-related)
+ ("a" jmax-bibtex-wos-related)
("R" jmax-bibtex-crossref)
("g" jmax-bibtex-google-scholar)
("n" jmax-bibtex-new-entry/body)
("K" (lambda ()
(interactive)
(org-ref-set-bibtex-keywords
- (read-input "Keywords: "
- (bibtex-autokey-get-field "keywords"))
+ (read-string "Keywords: "
+ (bibtex-autokey-get-field "keywords"))
t)))
("b" org-ref-open-in-browser)
("r" (lambda () (interactive)
("e" email-bibtex-entry)
("U" (doi-utils-update-bibtex-entry-from-doi (jmax-bibtex-entry-doi)))
("u" doi-utils-update-field)
- ("f" jmax-bibtex-file/body)
+ ("F" jmax-bibtex-file/body)
("h" helm-bibtex)
("a" jmax-replace-nonascii)
("s" org-ref-sort-bibtex-entry)
(when jmax-bibtex-hydra-key-binding
(global-set-key jmax-bibtex-hydra-key-binding 'jmax-bibtex-hydra/body))
-
+;; ** Hydra menu for new bibtex entries
;; A hydra for adding new bibtex entries.
(defhydra jmax-bibtex-new-entry (:color blue)
"New Bibtex entry:"
("q" nil "quit"))
-;; a hydra menu of functions to act on a bibtex file.
+;; ** Hydra menu of functions to act on a bibtex file.
(defhydra jmax-bibtex-file (:color blue)
"Bibtex file functions: "
("v" bibtex-validate "Validate entries")
("p" org-ref-build-full-bibliography "PDF bibliography"))
+;; * DEPRECATED bibtex menu
(defvar jmax-bibtex-menu-funcs '()
"Functions to run in doi menu.
Each entry is a list of (key menu-name function). The function
(defalias 'jb 'jmax-bibtex)
+;; * The end
(provide 'jmax-bibtex)
;;; jmax-bibtex.el ends here