]> git.donarmstrong.com Git - lib.git/commitdiff
add the beamer rules to auctex
authorDon Armstrong <don@donarmstrong.com>
Mon, 13 Mar 2006 08:51:05 +0000 (08:51 +0000)
committerDon Armstrong <don@donarmstrong.com>
Mon, 13 Mar 2006 08:51:05 +0000 (08:51 +0000)
emacs_el/auctex/beamer.el [new file with mode: 0644]

diff --git a/emacs_el/auctex/beamer.el b/emacs_el/auctex/beamer.el
new file mode 100644 (file)
index 0000000..6a12d4b
--- /dev/null
@@ -0,0 +1,134 @@
+;;; beamer.el --- AUCTeX style for the latex-beamer class
+
+;; Copyright (C) 2004 Thomas Baumann
+;; License: GPL, see the file COPYING in the base directory of AUCTeX
+
+;; Author: Thomas Baumann <thomas.baumann@ch.tum.de>
+;; Created: 2003-12-20
+;; Version: $Id: beamer.el,v 1.3 2004/04/29 05:07:22 tantau Exp $
+;; Keywords: tex
+
+;;; Commentary:
+
+;; This file adds support for the latex-beamer class.
+;;
+;; This file is intended to be used with the AUCTeX-Package.
+;; Put this File into your TeX-style-path. You may also
+;; byte-compile this file.
+
+;;; Code:
+(TeX-add-style-hook "beamer"
+ (function
+  (lambda ()
+    (defvar beamer-use-section-labels-flag nil
+      "Controls whether section labels are added")
+    (unless beamer-use-section-labels-flag
+      (make-local-variable 'LaTeX-section-hook)
+      (setq LaTeX-section-hook
+             '(LaTeX-section-heading
+               LaTeX-section-title
+               LaTeX-section-section)))
+
+    (setq LaTeX-item-list
+          (append '(("itemize" . LaTeX-item-beamer)
+                    ("enumerate" . LaTeX-item-beamer))
+                  LaTeX-item-list))
+
+    (TeX-add-symbols
+     '("alert" 1)
+     '("alt" TeX-arg-beamer-overlay-spec 2)
+     '("beamerbutton" 1)
+     '("beamergotobutton" 1)
+     '("beamerreturnbutton" 1)
+     '("beamerskipbutton" 1)
+     '("frame" TeX-arg-beamer-frametitle)
+     '("frametitle" 1)
+     '("hyperlink" TeX-arg-beamer-overlay-spec 2)
+     '("hyperlinkslideprev" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkslidenext" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkframestart" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkframeend" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkframestartnext" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkframeendprev" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkpresentationstart" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkpresentationend" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkappendixstart" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkappendixend" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkdocumentstart" TeX-arg-beamer-overlay-spec 1)
+     '("hyperlinkdocumentend" TeX-arg-beamer-overlay-spec 1)
+     '("hypertarget" TeX-arg-beamer-overlay-spec 2)
+     '("institute" 1)
+     '("invisible" TeX-arg-beamer-overlay-spec 1)
+     '("label" TeX-arg-beamer-overlay-spec 1)
+     '("logo" 1)
+     '("note" TeX-arg-beamer-note 1)
+     '("only" TeX-arg-beamer-overlay-spec 1)
+     '("onslide" TeX-arg-beamer-overlay-spec)
+     '("partpage")
+     '("pause")
+     '("structure" TeX-arg-beamer-overlay-spec 1)
+     '("temporal" TeX-arg-beamer-overlay-spec 3)
+     '("titlepage")
+     '("titlegraphic" 1)
+     '("uncover" TeX-arg-beamer-overlay-spec 1)
+     '("visible" TeX-arg-beamer-overlay-spec 1)
+     )
+    
+    (LaTeX-add-environments
+     '("actionenv")
+     '("alertblock" 1)
+     '("beamerboxesrounded" 1)
+     '("block" 1)
+     '("column" "Width")
+     "columns"
+     "columnsonlytextwidth"
+     '("exampleblock" 1)
+     '("onlyenv" (lambda (env &rest ignore)
+                   (LaTeX-insert-environment
+                    env
+                    (let ((overlay (read-input "Overlay: ")))
+                      (if (not (zerop (length overlay)))
+                          (format "<%s>" overlay))))))
+     '("overlayarea" "Area width" "Area height")
+     '("overprint"  (lambda (env &rest ignore)
+                      (LaTeX-insert-environment
+                       env
+                       (let ((overlay (read-input "Overlay: ")))
+                         (if (not (zerop (length overlay)))
+                             (format "{%s}" overlay)))))))
+
+    )))
+
+(defun TeX-arg-beamer-overlay-spec (optional &optional prompt)
+  "Prompt for overlay specification." 
+  (let ((overlay (read-input "Overlay: ")))
+    (if (not (zerop (length overlay)))
+        (progn (insert "<" overlay ">")))
+    (indent-according-to-mode)))
+
+(defun TeX-arg-beamer-frametitle (optional &optional prompt)
+  "Prompt for the frametitle."
+  (let ((title (read-input "What title: ")))
+    (if (not (zerop (length title)))
+        (progn (insert TeX-grop TeX-esc "frametitle" TeX-grop 
+                       title TeX-grcl TeX-grcl))
+      (progn (insert TeX-grop TeX-grcl)))))
+
+(defun LaTeX-item-beamer ()
+  "Insert a new item with an optional overlay argument."
+  (TeX-insert-macro "item")
+  (delete-horizontal-space)
+  (TeX-arg-beamer-overlay-spec 0)
+  (insert " ")
+  (indent-according-to-mode))
+  
+(defun TeX-arg-beamer-note (optional &optional prompt)
+  "Prompt for overlay specification and optional argument."
+  (let ((overlay (read-input "Overlay: "))
+        (options (read-input "Options: ")))
+    (if (not (zerop (length overlay)))
+        (progn (insert "<" overlay ">")))
+    (if (not (zerop (length options)))
+        (progn (insert "[" options "]")))
+    (indent-according-to-mode)))
+