summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.el3
-rw-r--r--lisp/km-bib.el18
2 files changed, 20 insertions, 1 deletions
diff --git a/init.el b/init.el
index bb7d5bf..e88a74f 100644
--- a/init.el
+++ b/init.el
@@ -1622,7 +1622,8 @@
km/bibtex-remove-doi-leader
km/bibtex-remove-entry-space
km/bibtex-set-coding-system
- km/bibtex-single-space-author-list))
+ km/bibtex-single-space-author-list
+ km/bibtex-sub-journal))
(add-hook 'bibtex-clean-entry-hook h)))
(use-package pandoc-mode
diff --git a/lisp/km-bib.el b/lisp/km-bib.el
index b7b7946..5eb7bdd 100644
--- a/lisp/km-bib.el
+++ b/lisp/km-bib.el
@@ -144,6 +144,24 @@ to
(bibtex-end-of-text-in-field bounds) t)
(replace-match (downcase (match-string 0)) 'fixedcase)))))))
+(defun km/bibtex-sub-journal ()
+ (when (boundp 'km/bibtex-journal-substitutions)
+ (save-excursion
+ (bibtex-beginning-of-entry)
+ (let* ((bounds (bibtex-search-forward-field "journal" t))
+ (beg (1+ (bibtex-start-of-text-in-field bounds)))
+ (end (1- (bibtex-end-of-text-in-field bounds))))
+ (when bounds
+ (let* ((journ (replace-regexp-in-string
+ "[ \n]+" " "
+ (buffer-substring-no-properties beg end)))
+ (sub (assoc-string journ km/bibtex-journal-substitutions)))
+ (when sub
+ (goto-char beg)
+ (delete-region beg end)
+ (insert (cdr sub))
+ (fill-paragraph))))))))
+
(defvar km/bibtex-article-fields-to-delete
'("abstract" "issn" "pubmedid" "url" "eprint" "keywords"))