From f098d071cb4ce72bafb41ca7ab3a3849ba1928b0 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Thu, 14 Apr 2016 22:19:31 -0400 Subject: bib: Add bibtex-sub-journal command --- init.el | 3 ++- lisp/km-bib.el | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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")) -- cgit v1.2.3