[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[AUCTeX-diffs] [elpa] externals/auctex ae65b68 1/4: Update style/natbib.
From: |
Tassilo Horn |
Subject: |
[AUCTeX-diffs] [elpa] externals/auctex ae65b68 1/4: Update style/natbib.el to package version 8.31b |
Date: |
Sat, 12 Nov 2016 09:57:00 +0000 (UTC) |
branch: externals/auctex
commit ae65b6841e47afd8e73435b5fe170057e64afec2
Author: Arash Esbati <address@hidden>
Commit: Arash Esbati <address@hidden>
Update style/natbib.el to package version 8.31b
* style/natbib.el ("natbib"): Add missing macros to catch up with
package version 8.31b. Rearrange code.
(LaTeX-arg-natbib-notes): Remove redundant check if
`TeX-arg-cite-note-p' is non-nil.
---
style/natbib.el | 242 ++++++++++++++++++++++++++++++++++---------------------
1 file changed, 148 insertions(+), 94 deletions(-)
diff --git a/style/natbib.el b/style/natbib.el
index d56642c..2bad500 100644
--- a/style/natbib.el
+++ b/style/natbib.el
@@ -1,6 +1,6 @@
-;;; natbib.el --- Style hook for the natbib package
+;;; natbib.el --- AUCTeX style for `natbib.sty' version 8.31b
-;; Copyright (C) 1997, 1998, 2004, 2007, 2014 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2004, 2007, 2014, 2016 Free Software Foundation,
Inc.
;; Authors: Berwin Turlach <address@hidden>
;; Carsten Dominik <address@hidden>
@@ -26,104 +26,158 @@
;;; Code:
-(TeX-add-style-hook "natbib"
- (function
- (lambda ()
- ;; The number in the cdr of the following list indicates how many
- ;; optional note arguments we consider useful. Prompting for those
- ;; arguments will still depend upon `TeX-arg-cite-note-p'.
- (let ((citecmds
- '(("cite" . 0)
- ("citet" . 1) ("citet*" . 1) ("citealt" . 1) ("citealt*" . 1)
- ("citep" . 2) ("citep*" . 2) ("citealp" . 2) ("citealp*" . 2)
- ("citeauthor" . 0) ("citeauthor*" . 0) ("citefullauthor" . 0)
- ("citeyear" . 0) ("citeyearpar" . 0)
- ("shortcites" . 0))))
-
- ;; Add these symbols
- (apply
- 'TeX-add-symbols
- (mapcar
- (lambda (cmd)
- (cond
- ((= (cdr cmd) 0)
- ;; No optional arguments
- (list (car cmd) 'TeX-arg-cite))
- ((= (cdr cmd) 1)
- ;; Just one optional argument, the post note
- (list
- (car cmd)
- '(TeX-arg-conditional TeX-arg-cite-note-p (["Post-note"]) nil)
- 'TeX-arg-cite))
- ((= (cdr cmd) 2)
- ;; Pre and post notes
- (list
- (car cmd)
- '(TeX-arg-conditional TeX-arg-cite-note-p
([LaTeX-arg-natbib-notes]) nil)
- 'TeX-arg-cite))))
- citecmds))
-
- ;; Add the other symbols
- (TeX-add-symbols
- '("citetext" "Text")
- '("bibpunct" ["Post note separator"]
- "Opening bracket"
- "Closing bracket"
- "Punctuation between multiple citations"
- "style [n]umeric [s]uperscript [a]uthor-year"
- "Punctuation between author and year"
- "Punctuation between years for common authors")
- '("citestyle" "Style")
- '("citeindextrue")
- '("citeindexfalse")
- '("citeindextype"))
-
- ;; Make an entry in TeX-complete-list
- (add-to-list
- 'TeX-complete-list
- (list
- (concat "\\\("
- (mapconcat (lambda (x) (regexp-quote (car x)))
- citecmds "\|")
- "\)\(\[[^]
\%]*\]\)*{\([^{}
\%,]*,\)*\([^{}
\%,]*\\)")
- 4 'LaTeX-bibitem-list "}")))
-
- ;; Fontification
- (when (and (fboundp 'font-latex-add-keywords)
- (eq TeX-install-font-lock 'font-latex-setup))
- (font-latex-add-keywords '(("cite" "*[[{")
- ("citet" "*[[{")
- ("citealt" "*[[{")
- ("citep" "*[[{")
- ("citealp" "*[[{")
- ("citeauthor" "*[[{")
- ("citefullauthor" "[[{")
- ("citeyear" "[[{")
- ("citeyearpar" "[[{")
- ("shortcites" "{"))
- 'reference))
-
- ;; Tell RefTeX
- (if (fboundp 'reftex-set-cite-format)
- (reftex-set-cite-format 'natbib))))
+(TeX-add-style-hook
+ "natbib"
+ (lambda ()
+ ;; The number in the cdr of the following list indicates how many
+ ;; optional note arguments we consider useful. Prompting for those
+ ;; arguments will still depend upon `TeX-arg-cite-note-p'.
+ (let ((citecmds
+ '(("cite" . 0)
+ ("citet" . 1) ("citet*" . 1) ("citealt" . 1) ("citealt*" . 1)
+ ("citep" . 2) ("citep*" . 2) ("citealp" . 2) ("citealp*" . 2)
+ ("citeauthor" . 0) ("citeauthor*" . 0) ("citefullauthor" . 0)
+ ("citeyear" . 0) ("citeyearpar" . 0)
+ ("shortcites" . 0)
+ ;; 2.4 Extended Citation Commands
+ ("citenum" . 0)
+ ;; 2.5 Forcing Upper Cased Name
+ ("Citet" . 1) ("Citet*" . 1) ("Citealt" . 1) ("Citealt*" . 1)
+ ("Citep" . 2) ("Citep*" . 2) ("Citealp" . 2) ("Citealp*" . 2)
+ ;; 2.6 Citation Aliasing
+ ("citetalias" . 1) ("citepalias" . 2))))
+
+ ;; Add these symbols
+ (apply
+ #'TeX-add-symbols
+ (mapcar
+ (lambda (cmd)
+ (cond
+ ((= (cdr cmd) 0)
+ ;; No optional arguments
+ (list (car cmd) 'TeX-arg-cite))
+ ((= (cdr cmd) 1)
+ ;; Just one optional argument, the post note
+ (list
+ (car cmd)
+ '(TeX-arg-conditional TeX-arg-cite-note-p (["Post-note"]) nil)
+ 'TeX-arg-cite))
+ ((= (cdr cmd) 2)
+ ;; Pre and post notes
+ (list
+ (car cmd)
+ '(TeX-arg-conditional TeX-arg-cite-note-p
([LaTeX-arg-natbib-notes]) nil)
+ 'TeX-arg-cite))))
+ citecmds))
+
+ ;; Make an entry in TeX-complete-list
+ (add-to-list
+ 'TeX-complete-list
+ (list
+ (concat "\\\("
+ (mapconcat (lambda (x) (regexp-quote (car x)))
+ citecmds "\|")
+ "\)\(\[[^]
\%]*\]\)*{\([^{}
\%,]*,\)*\([^{}
\\%,]*\)")
+ 4 'LaTeX-bibitem-list "}")))
+
+ ;; Add the other symbols
+ (TeX-add-symbols
+ ;; 2.4 Extended Citation Commands
+ '("citetext" "Text")
+
+ ;; 2.6 Citation Aliasing
+ '("defcitealias" TeX-arg-cite "Alias")
+
+ ;; 2.9 Selecting Citation Punctuation
+ '("setcitestyle" (TeX-arg-key-val
+ (;; Citation mode (fourth argument of ibpunct):
+ ("authoryear") ("numbers") ("super")
+ ;; Braces (first and second arguments of ibpunct):
+ ("round") ("square") ("open") ("close")
+ ;; Between citations (third argument of ibpunct):
+ ("semicolon") ("comma") ("citesep")
+ ;; Between author and year (fifth argument of ibpunct):
+ ("aysep")
+ ;; Between years with common author (sixth argument of
ibpunct):
+ ("yysep")
+ ;; Text before post-note (optional argument of ibpunct):
+ ("notesep"))))
+ '("bibpunct" ["Post note separator"]
+ "Opening bracket"
+ "Closing bracket"
+ "Punctuation between multiple citations"
+ "style [n]umeric [s]uperscript [a]uthor-year"
+ "Punctuation between author and year"
+ "Punctuation between years for common authors")
+
+ '("citestyle" (TeX-arg-eval completing-read
+ (TeX-argument-prompt optional nil "Style")
+ '("plain" "plainnat" "agu" "egu"
+ "agms" "dcu" "kluwer" "cospar" "nature")))
+
+ ;; 2.12 Other Formatting Options
+ "bibsection"
+ "bibpreamble"
+ "bibfont"
+ "citenumfont"
+ "bibnumfmt"
+
+ ;; 2.13 Automatic Indexing of Citations
+ '("citeindextrue")
+ '("citeindexfalse")
+ '("citeindextype"))
+
+ ;; 2.12 Other Formatting Options
+ (LaTeX-add-lengths "bibhang" "bibsep")
+
+ ;; Fontification
+ (when (and (fboundp 'font-latex-add-keywords)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("cite" "*[[{")
+ ("citet" "*[[{")
+ ("citealt" "*[[{")
+ ("citep" "*[[{")
+ ("citealp" "*[[{")
+ ("citeauthor" "*[[{")
+ ("citefullauthor" "[[{")
+ ("citeyear" "[[{")
+ ("citeyearpar" "[[{")
+ ("shortcites" "{")
+ ("citenum" "{")
+ ("Citet" "*[[{")
+ ("Citealt" "*[[{")
+ ("Citep" "*[[{")
+ ("Citealp" "*[[{")
+ ("Citeauthor" "*[[{")
+ ("citetalias" "*[[{")
+ ("citepalias" "*[[{"))
+ 'reference)
+ (font-latex-add-keywords '(("defcitealias" "{{")
+ ("bibpunct" "[{{{{{{")
+ ("setcitestyle" "{")
+ ("citestyle" "{"))
+ 'function))
+
+ ;; Tell RefTeX
+ (if (fboundp 'reftex-set-cite-format)
+ (reftex-set-cite-format 'natbib)))
LaTeX-dialect)
(defun LaTeX-arg-natbib-notes (optional)
"Prompt for two note arguments a natbib citation command.
If OPTIONAL is non-nil, insert them in brackets, otherwise in
braces."
- (if TeX-arg-cite-note-p
- (let ((pre (TeX-read-string
- (TeX-argument-prompt optional nil "Pre-note")))
- (post (TeX-read-string
- (TeX-argument-prompt optional nil "Post-note"))))
- (TeX-argument-insert pre optional)
- (TeX-argument-insert post optional)
- ;; pre is given, post is empty: Make sure that we insert an
- ;; extra pair of `[]', otherwise pre becomes post
- (when (and pre (not (string= pre ""))
- (string= post ""))
- (insert LaTeX-optop LaTeX-optcl)))))
+ (let ((pre (TeX-read-string
+ (TeX-argument-prompt optional nil "Pre-note")))
+ (post (TeX-read-string
+ (TeX-argument-prompt optional nil "Post-note"))))
+ (TeX-argument-insert pre optional)
+ (TeX-argument-insert post optional)
+ ;; pre is given, post is empty: Make sure that we insert an
+ ;; extra pair of `[]', otherwise pre becomes post
+ (when (and pre (not (string= pre ""))
+ (string= post ""))
+ (insert LaTeX-optop LaTeX-optcl))))
(defvar LaTeX-natbib-package-options '("numbers" "super" "authoryear"
"round" "square" "angle" "curly"