]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/auctex/style/harvard.el
Remove version numbers in packages/ directory
[gnu-emacs-elpa] / packages / auctex / style / harvard.el
diff --git a/packages/auctex/style/harvard.el b/packages/auctex/style/harvard.el
new file mode 100644 (file)
index 0000000..fa38d2a
--- /dev/null
@@ -0,0 +1,128 @@
+;;; harvard.el --- Support for Harvard Citation style package for AUCTeX.
+
+;; Harvard citation style is from Peter Williams
+;; available on the CTAN servers
+
+;; Version: $Id: harvard.el,v 1.10 2008/02/03 14:53:30 angeli Exp $
+
+;; Copyright (C) 1994 Berwin Turlach <berwin@core.ucl.ac.be>
+;; Copyright (C) 1997 Berwin Turlach <berwin.turlach@anu.edu.au>
+;; Copyright (C) 2005 Free Software Foundation, Inc.
+
+;; This program 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.
+;; 
+;; This program 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 this program; if not, write to the Free Software Foundation,
+;; Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+;;; Code:
+
+(TeX-add-style-hook "harvard"
+ (function
+  (lambda ()
+
+    (LaTeX-add-environments
+     '("thebibliography" LaTeX-env-harvardbib ignore))
+
+    (TeX-add-symbols
+     "harvardand"
+     '("citeasnoun"
+       (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil)
+       TeX-arg-cite)
+     '("possessivecite"
+       (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil)
+       TeX-arg-cite)
+     '("citeaffixed"
+       (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil)
+       TeX-arg-cite "Affix")
+     '("citeyear"
+       (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil)
+       TeX-arg-cite)
+     '("citename"
+       (TeX-arg-conditional TeX-arg-cite-note-p ([ "Note" ]) nil)
+       TeX-arg-cite)
+     '("citationstyle"
+       (TeX-arg-eval completing-read "Citation style: " '(("agsm") ("dcu"))))
+     '("citationmode"
+       (TeX-arg-eval completing-read "Citation mode: "
+                     '(("full") ("abbr") ("default"))))
+     '("harvardparenthesis"
+       (TeX-arg-eval completing-read "Harvardparenthesis: "
+                     '(("round") ("curly") ("angle") ("square"))))
+     '("bibliographystyle"
+       (TeX-arg-eval
+       completing-read "Bibliography style: "
+        '(("agsm") ("apsr") ("dcu") ("jmr") ("jphysicsB") ("kluwer") ("nederlands") ("econometrica")))
+       ignore)
+     '("harvarditem" [ "Short citation" ]
+       "Complete citation" "Year" TeX-arg-define-cite))
+
+    (setq TeX-complete-list
+         (append '(("\\\\citeasnoun\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)"
+                     1 LaTeX-bibitem-list "}")
+                    ("\\\\citeasnoun{\\([^{}\n\r\\%,]*\\)" 1
+                     LaTeX-bibitem-list "}")
+                    ("\\\\possessivecite\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)" 
+                     1 LaTeX-bibitem-list "}")
+                    ("\\\\possessivecite{\\([^{}\n\r\\%,]*\\)" 1
+                     LaTeX-bibitem-list "}")
+                    ("\\\\citename\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)"
+                     1 LaTeX-bibitem-list "}")
+                    ("\\\\citename{\\([^{}\n\r\\%,]*\\)" 1
+                     LaTeX-bibitem-list "}")
+                    ("\\\\citeaffixed\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)"
+                     1 LaTeX-bibitem-list "}")
+                    ("\\\\citeaffixed{\\([^{}\n\r\\%,]*\\)" 1
+                     LaTeX-bibitem-list "}") 
+                    ("\\\\citeaffixed{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)"
+                     2 LaTeX-bibitem-list)
+                    ("\\\\citeyear\\[[^]\n\r\\%]*\\]{\\([^{}\n\r\\%,]*\\)"
+                     1 LaTeX-bibitem-list "}")
+                    ("\\\\citeyear{\\([^{}\n\r\\%,]*\\)" 1
+                     LaTeX-bibitem-list "}") 
+                    ("\\\\citeyear{\\([^{}\n\r\\%]*,\\)\\([^{}\n\r\\%,]*\\)"
+                     2 LaTeX-bibitem-list))
+                 TeX-complete-list))
+
+    (setq LaTeX-auto-regexp-list
+          (append '(("\\\\harvarditem{\\([a-zA-Z][^%#'()={}]*\\)}{\\([0-9][^, %\"#'()={}]*\\)}{\\([a-zA-Z][^, %\"#'()={}]*\\)}" 3 LaTeX-auto-bibitem)
+                    ("\\\\harvarditem\\[[^][\n\r]+\\]{\\([a-zA-Z][^%#'()={}]*\\)}{\\([0-9][^, %\"#'()={}]*\\)}{\\([a-zA-Z][^, %\"#'()={}]*\\)}" 3 LaTeX-auto-bibitem)
+                    )
+                  LaTeX-auto-regexp-list))
+    
+    (setq LaTeX-item-list
+         (cons '("thebibliography" . LaTeX-item-harvardbib)
+               LaTeX-item-list))
+
+    ;; Tell RefTeX
+    (when (fboundp 'reftex-set-cite-format)
+      (reftex-set-cite-format 'harvard)))))
+
+(defun LaTeX-env-harvardbib (environment &optional ignore)
+  "Insert ENVIRONMENT with label for harvarditem."
+  (LaTeX-insert-environment environment
+                           (concat TeX-grop "xx" TeX-grcl))
+  (end-of-line 0)
+  (delete-char 1)
+  (delete-horizontal-space)
+  (LaTeX-insert-item))
+
+;; Analog to LaTeX-item-bib from latex.el
+(defun LaTeX-item-harvardbib ()
+  "Insert a new harvarditem."
+  (TeX-insert-macro "harvarditem"))
+
+(defvar LaTeX-harvard-package-options '("full" "abbr" "default"
+                                       "agsmcite" "dcucite" "round"
+                                       "curly" "angle" "square" "none")
+  "Package options for the harvard package.")
+
+;; harvard.el ends here