diff options
-rw-r--r-- | init.el | 3 | ||||
-rw-r--r-- | lisp/km-bib.el | 18 |
2 files changed, 20 insertions, 1 deletions
@@ -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")) |