From becff06c71d277647eda4378203d03ab36e141eb Mon Sep 17 00:00:00 2001 From: mattkae Date: Tue, 17 May 2022 07:07:37 -0400 Subject: Evil mode and latex support --- elpa/auctex-13.1.3/style/natbib.el | 199 +++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 elpa/auctex-13.1.3/style/natbib.el (limited to 'elpa/auctex-13.1.3/style/natbib.el') diff --git a/elpa/auctex-13.1.3/style/natbib.el b/elpa/auctex-13.1.3/style/natbib.el new file mode 100644 index 0000000..ba6622a --- /dev/null +++ b/elpa/auctex-13.1.3/style/natbib.el @@ -0,0 +1,199 @@ +;;; natbib.el --- AUCTeX style for `natbib.sty' version 8.31b -*- lexical-binding: t; -*- + +;; Copyright (C) 1997, 1998, 2004, 2007, 2014--2020 Free Software Foundation, Inc. + +;; Authors: Berwin Turlach +;; Carsten Dominik +;; Maintainer: auctex-devel@gnu.org +;; Keywords: tex + +;; This file is part of AUCTeX. + +;; AUCTeX is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 3, or (at your option) +;; any later version. + +;; AUCTeX is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with AUCTeX; see the file COPYING. If not, write to the Free +;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +;; 02110-1301, USA. + +;;; Code: + +(require 'tex) +(require 'latex) + +;; Silence the compiler: +(declare-function font-latex-add-keywords + "font-latex" + (keywords class)) + +(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 "\\|") + "\\)\\(\\[[^]\n\r\\%]*\\]\\)*{\\([^{}\n\r\\%,]*,\\)*\\([^{}\n\r\\%,]*\\)") + 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 \bibpunct): + ("authoryear") ("numbers") ("super") + ;; Braces (first and second arguments of \bibpunct): + ("round") ("square") ("open") ("close") + ;; Between citations (third argument of \bibpunct): + ("semicolon") ("comma") ("citesep") + ;; Between author and year (fifth argument of \bibpunct): + ("aysep") + ;; Between years with common author (sixth argument of \bibpunct): + ("yysep") + ;; Text before post-note (optional argument of \bibpunct): + ("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 nil 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 + (when (and LaTeX-reftex-cite-format-auto-activate + (fboundp 'reftex-set-cite-format)) + (reftex-set-cite-format 'natbib))) + TeX-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." + (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" + "comma" "colon" "nobibstyle" + "bibstyle" "openbib" "sectionbib" + "sort" "sort&compress" + "longnamesfirst" "nonamebreak") + "Package options for the natbib package.") + +;; natbib.el ends here -- cgit v1.2.1