• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/emacs-93/emacs/lisp/textmodes/

Lines Matching +refs:reftex +refs:highlight

0 ;;; reftex-cite.el --- creating citations with RefTeX
32 (provide 'reftex-cite)
33 (require 'reftex)
39 (defvar reftex-cite-regexp-hist nil)
42 (defconst reftex-citation-prompt
45 (defconst reftex-citation-help
60 (defmacro reftex-with-special-syntax-for-bib (&rest body)
64 (set-syntax-table reftex-syntax-table-for-bib)
68 (defun reftex-default-bibliography ()
69 ;; Return the expanded value of `reftex-default-bibliography'.
71 (unless (eq (get 'reftex-default-bibliography :reftex-raw)
72 reftex-default-bibliography)
73 (put 'reftex-default-bibliography :reftex-expanded
74 (reftex-locate-bibliography-files
75 default-directory reftex-default-bibliography))
76 (put 'reftex-default-bibliography :reftex-raw
77 reftex-default-bibliography))
78 (get 'reftex-default-bibliography :reftex-expanded))
80 (defun reftex-bib-or-thebib ()
84 (let* ((docstruct (symbol-value reftex-docstruct-symbol))
100 (defun reftex-get-bibfile-list ()
108 (reftex-access-scan-info)
111 (cdr (reftex-last-assoc-before-elt
114 (symbol-value reftex-docstruct-symbol))))
117 (symbol-value reftex-docstruct-symbol))))
119 (cdr (assq 'bib (symbol-value reftex-docstruct-symbol)))
124 (defun reftex-pop-to-bibtex-entry (key file-list &optional mark-to-kill
125 highlight item return)
128 ;; If HIGHLIGHT is non-nil, highlight the match.
144 (unless (setq buf (reftex-get-file-buffer-force file mark-to-kill))
158 (point) (reftex-end-of-bib-entry item)))
165 (if highlight
166 (reftex-highlight 0 (match-beginning 0) (match-end 0)))
173 (defun reftex-end-of-bib-entry (item)
186 (defun reftex-extract-bib-entries (buffers)
196 (setq default (regexp-quote (reftex-get-bibkey-default)))
203 (if reftex-mode
207 (symbol-value reftex-docstruct-symbol))))
209 nil nil nil 'reftex-cite-regexp-hist)
230 (setq buffer1 (reftex-get-file-buffer-force
231 buffer (not reftex-keep-temporary-buffers))))
237 (reftex-with-special-syntax-for-bib
276 (setq alist (reftex-parse-bibtex-entry
284 alist (reftex-get-crossref-alist alist))))
287 (push (cons "&formatted" (reftex-format-bib-entry alist))
291 (push (reftex-get-bib-field "&key" alist) alist)
295 (reftex-kill-temporary-buffers))))
300 ((eq 'author reftex-sort-bibtex-matches)
301 (sort found-list 'reftex-bib-sort-author))
302 ((eq 'year reftex-sort-bibtex-matches)
303 (sort found-list 'reftex-bib-sort-year))
304 ((eq 'reverse-year reftex-sort-bibtex-matches)
305 (sort found-list 'reftex-bib-sort-year-reverse))
308 (defun reftex-bib-sort-author (e1 e2)
309 (let ((al1 (reftex-get-bib-names "author" e1))
310 (al2 (reftex-get-bib-names "author" e2)))
319 (defun reftex-bib-sort-year (e1 e2)
323 (defun reftex-bib-sort-year-reverse (e1 e2)
327 (defun reftex-get-crossref-alist (entry)
342 (reftex-parse-bibtex-entry nil start (point)))
346 (defun reftex-extract-bib-entries-from-thebibliography (files)
355 (setq buf (reftex-get-file-buffer-force
356 file (not reftex-keep-temporary-buffers)))
378 (mapcar 'reftex-parse-bibitem
388 (setq default (regexp-quote (reftex-get-bibkey-default)))
395 (if reftex-mode
399 (symbol-value reftex-docstruct-symbol))))
401 nil nil nil 'reftex-cite-regexp-hist)
420 (push (cons "&formatted" (reftex-format-bibitem x)) x)
421 (push (reftex-get-bib-field "&key" x) x)
427 (defun reftex-get-bibkey-default ()
430 (let* ((macro (reftex-what-macro 1)))
435 (reftex-this-word))))
439 (defun reftex-get-bib-names (field entry)
441 (let ((names (reftex-get-bib-field field entry)))
443 (setq names (reftex-get-bib-field "editor" entry)))
454 (defun reftex-parse-bibtex-entry (entry &optional from to)
462 (set-syntax-table reftex-syntax-table-for-bib)
473 (cons "&type" (downcase (reftex-match-string 1)))
474 (cons "&key" (reftex-match-string 2)))))
476 (setq key (downcase (reftex-match-string 1)))
505 (defun reftex-get-bib-field (fieldname entry &optional format)
514 (defun reftex-format-bib-entry (entry)
517 ((auth-list (reftex-get-bib-names "author" entry))
519 (year (reftex-get-bib-field "year" entry))
520 (title (reftex-get-bib-field "title" entry))
521 (type (reftex-get-bib-field "&type" entry))
522 (key (reftex-get-bib-field "&key" entry))
526 (concat (reftex-get-bib-field "journal" entry) " "
527 (reftex-get-bib-field "volume" entry) ", "
528 (reftex-get-bib-field "pages" entry)))
530 (concat "book (" (reftex-get-bib-field "publisher" entry) ")"))
532 (concat "PhD: " (reftex-get-bib-field "school" entry)))
534 (concat "Master: " (reftex-get-bib-field "school" entry)))
536 (concat "Chap: " (reftex-get-bib-field "chapter" entry)
537 ", pp. " (reftex-get-bib-field "pages" entry)))
541 (reftex-get-bib-field "booktitle" entry "in: %s"))
543 (setq authors (reftex-truncate authors 30 t t))
544 (when (reftex-use-fonts)
546 (reftex-verified-face reftex-label-face
550 (put-text-property 0 (length authors) 'face reftex-bib-author-face
552 (put-text-property 0 (length year) 'face reftex-bib-year-face
554 (put-text-property 0 (length title) 'face reftex-bib-title-face
556 (put-text-property 0 (length extra) 'face reftex-bib-extra-face
560 (defun reftex-parse-bibitem (item)
576 (defun reftex-format-bibitem (item)
578 (let ((text (reftex-get-bib-field "&text" item))
579 (key (reftex-get-bib-field "&key" item))
590 (when (reftex-use-fonts)
591 (put-text-property 0 (length text) 'face reftex-bib-author-face text))
597 (defun reftex-citation (&optional no-insert format-key)
602 to `reftex-cite-format' and inserted into the buffer.
612 `reftex-cite-format'.
622 (reftex-check-recursive-edit)
624 ;; This function may also be called outside reftex-mode.
625 ;; Thus look for the scanning info only if in reftex-mode.
627 (when reftex-mode
628 (reftex-access-scan-info nil))
630 ;; Call reftex-do-citation, but protected
632 (reftex-do-citation current-prefix-arg no-insert format-key)
633 (reftex-kill-temporary-buffers)))
635 (defun reftex-do-citation (&optional arg no-insert format-key)
636 ;; This really does the work of reftex-citation.
638 (let* ((format (reftex-figure-out-cite-format arg no-insert format-key))
639 (docstruct-symbol reftex-docstruct-symbol)
640 (selected-entries (reftex-offer-bib-menu))
671 (setq string (if reftex-format-cite-function
672 (funcall reftex-format-cite-function
673 (reftex-get-bib-field "&key" entry)
675 (reftex-format-citation entry format)))
676 (when (or (eq reftex-cite-prompt-optional-args t)
677 (and reftex-cite-prompt-optional-args
689 (when reftex-cite-cleanup-optional-args
705 (when (and reftex-mode
707 reftex-plug-into-AUCTeX)
711 (when (and reftex-mode reftex-cache-cite-echo cite-view)
713 (reftex-make-cite-echo-string entry docstruct-symbol))
718 (set-marker reftex-select-return-marker nil)
719 (reftex-kill-buffer "*RefTeX Select*")
727 (reftex-do-citation arg))
733 (defun reftex-figure-out-cite-format (arg &optional no-insert format-key)
736 (let ((macro (car (reftex-what-macro 1)))
737 (cite-format-value (reftex-get-cite-format))
758 (assq cite-format-value reftex-cite-format-builtin))
759 (nth 2 (assq cite-format-value reftex-cite-format-builtin))
764 (reftex-select-with-char
777 (defun reftex-citep ()
778 "Call `reftex-citation' with a format selector `?p'."
780 (reftex-citation nil ?p))
782 (defun reftex-citet ()
783 "Call `reftex-citation' with a format selector `?t'."
785 (reftex-citation nil ?t))
787 (defvar reftex-select-bib-map)
788 (defun reftex-offer-bib-menu ()
791 (let ((bibtype (reftex-bib-or-thebib))
800 ; ((assq 'bib (symbol-value reftex-docstruct-symbol))
802 (reftex-extract-bib-entries (reftex-get-bibfile-list)))
804 ; ((assq 'thebib (symbol-value reftex-docstruct-symbol))
806 (reftex-extract-bib-entries-from-thebibliography
807 (reftex-uniquify
809 (reftex-all-assq
810 'thebib (symbol-value reftex-docstruct-symbol))))))
811 (reftex-default-bibliography
813 (reftex-extract-bib-entries (reftex-default-bibliography)))
820 (setq reftex-call-back-to-this-buffer (current-buffer))
821 (set-marker reftex-select-return-marker (point))
826 (let ((default-major-mode 'reftex-select-bib-mode))
827 (reftex-kill-buffer "*RefTeX Select*")
829 (unless (eq major-mode 'reftex-select-bib-mode)
830 (reftex-select-bib-mode))
833 (reftex-insert-bib-matches found-list)))
841 (reftex-select-item
842 reftex-citation-prompt
843 reftex-citation-help
844 reftex-select-bib-map
846 'reftex-bibtex-selection-callback nil))
856 (setq found-list (reftex-restrict-bib-matches found-list))
859 (reftex-insert-bib-matches found-list))
864 (if reftex-select-marked
865 (mapcar 'car (nreverse reftex-select-marked))
872 (if reftex-select-marked
873 (mapcar 'car (nreverse reftex-select-marked))
878 (reftex-extract-bib-file found-list reftex-select-marked)
883 (reftex-extract-bib-file found-list reftex-select-marked
891 (if reftex-select-marked
893 (mapcar 'car (nreverse reftex-select-marked)))
904 (defun reftex-restrict-bib-matches (found-list)
908 nil 'reftex-cite-regexp-hist)
927 (defun reftex-extract-bib-file (all &optional marked complement)
950 (defun reftex-insert-bib-matches (list)
953 (if (memq reftex-highlight-selection '(mouse both))
954 reftex-mouse-selected-face
965 (run-hooks 'reftex-display-copied-context-hook))
967 (defun reftex-format-names (namelist n)
973 ((> len n) (concat (car namelist) (nth 2 reftex-cite-punctuation)))
979 (mapconcat 'identity namelist (nth 0 reftex-cite-punctuation))
980 (nth 1 reftex-cite-punctuation)
983 (defun reftex-format-citation (entry format)
988 (if (and reftex-comment-citations
989 (string-match "%l" reftex-cite-comment-format))
990 (error "reftex-cite-comment-format contains invalid %%l"))
1002 (reftex-get-bib-field "&key" entry)
1003 (if reftex-comment-citations
1004 reftex-cite-comment-format
1006 ((= l ?a) (reftex-format-names
1007 (reftex-get-bib-names "author" entry)
1009 ((= l ?A) (car (reftex-get-bib-names "author" entry)))
1010 ((= l ?b) (reftex-get-bib-field "booktitle" entry "in: %s"))
1011 ((= l ?B) (reftex-abbreviate-title
1012 (reftex-get-bib-field "booktitle" entry "in: %s")))
1013 ((= l ?c) (reftex-get-bib-field "chapter" entry))
1014 ((= l ?d) (reftex-get-bib-field "edition" entry))
1015 ((= l ?e) (reftex-format-names
1016 (reftex-get-bib-names "editor" entry)
1018 ((= l ?E) (car (reftex-get-bib-names "editor" entry)))
1019 ((= l ?h) (reftex-get-bib-field "howpublished" entry))
1020 ((= l ?i) (reftex-get-bib-field "institution" entry))
1021 ((= l ?j) (reftex-get-bib-field "journal" entry))
1022 ((= l ?k) (reftex-get-bib-field "key" entry))
1023 ((= l ?m) (reftex-get-bib-field "month" entry))
1024 ((= l ?n) (reftex-get-bib-field "number" entry))
1025 ((= l ?o) (reftex-get-bib-field "organization" entry))
1026 ((= l ?p) (reftex-get-bib-field "pages" entry))
1028 (reftex-get-bib-field "pages" entry)
1030 ((= l ?s) (reftex-get-bib-field "school" entry))
1031 ((= l ?u) (reftex-get-bib-field "publisher" entry))
1032 ((= l ?r) (reftex-get-bib-field "address" entry))
1033 ((= l ?t) (reftex-get-bib-field "title" entry))
1034 ((= l ?T) (reftex-abbreviate-title
1035 (reftex-get-bib-field "title" entry)))
1036 ((= l ?v) (reftex-get-bib-field "volume" entry))
1037 ((= l ?y) (reftex-get-bib-field "year" entry)))))
1049 (defun reftex-make-cite-echo-string (entry docstruct-symbol)
1051 (let* ((key (reftex-get-bib-field "&key" entry))
1053 (let* ((reftex-cite-punctuation '(" " " & " " etal.")))
1054 (reftex-format-citation entry reftex-cite-view-format)))
1061 (when reftex-cache-cite-echo
1068 (put reftex-docstruct-symbol 'modified t))
1070 (put reftex-docstruct-symbol 'modified t)))
1073 (defun reftex-bibtex-selection-callback (data ignore no-revisit)
1078 (key (reftex-get-bib-field "&key" data))
1083 (set-buffer reftex-call-back-to-this-buffer)
1084 (setq bibtype (reftex-bib-or-thebib))
1087 ; ((assq 'bib (symbol-value reftex-docstruct-symbol))
1088 (setq bibfile-list (reftex-get-bibfile-list)))
1090 ; ((assq 'thebib (symbol-value reftex-docstruct-symbol))
1092 (reftex-uniquify
1094 (reftex-all-assq
1095 'thebib (symbol-value reftex-docstruct-symbol))))
1097 (reftex-default-bibliography
1098 (setq bibfile-list (reftex-default-bibliography)))
1102 (setq bibfile-list (reftex-visited-files bibfile-list)))
1105 (reftex-pop-to-bibtex-entry
1106 key bibfile-list (not reftex-keep-temporary-buffers) t item)
1112 (defun reftex-all-used-citation-keys ()
1113 (reftex-access-scan-info)
1114 (let ((files (reftex-all-document-files)) file keys kk k)
1117 (set-buffer (reftex-get-file-buffer-force file 'mark))
1130 (reftex-kill-temporary-buffers)
1133 (defun reftex-create-bibtex-file (bibfile)
1140 (let ((keys (reftex-all-used-citation-keys))
1141 (files (reftex-get-bibfile-list))
1145 (set-buffer (reftex-get-file-buffer-force file 'mark))
1146 (reftex-with-special-syntax-for-bib
1180 ;;; reftex-cite.el ends here