]> git.donarmstrong.com Git - lib.git/blob - emacs_el/auctex-beamer/beamer.el
fix missing ) for org-mode
[lib.git] / emacs_el / auctex-beamer / beamer.el
1 ;;; beamer.el --- AUCTeX style for the latex-beamer class
2
3 ;; Copyright (C) 2004 Thomas Baumann
4 ;; License: GPL, see the file COPYING in the base directory of AUCTeX
5
6 ;; Author: Thomas Baumann <thomas.baumann@ch.tum.de>
7 ;; Created: 2003-12-20
8 ;; Version: $Id: beamer.el,v 1.3 2004/04/29 05:07:22 tantau Exp $
9 ;; Keywords: tex
10
11 ;;; Commentary:
12
13 ;; This file adds support for the latex-beamer class.
14 ;;
15 ;; This file is intended to be used with the AUCTeX-Package.
16 ;; Put this File into your TeX-style-path. You may also
17 ;; byte-compile this file.
18
19 ;;; Code:
20 (TeX-add-style-hook "beamer"
21  (function
22   (lambda ()
23     (defvar beamer-use-section-labels-flag nil
24       "Controls whether section labels are added")
25     (unless beamer-use-section-labels-flag
26       (make-local-variable 'LaTeX-section-hook)
27       (setq LaTeX-section-hook
28              '(LaTeX-section-heading
29                LaTeX-section-title
30                LaTeX-section-section)))
31
32     (setq LaTeX-item-list
33           (append '(("itemize" . LaTeX-item-beamer)
34                     ("enumerate" . LaTeX-item-beamer))
35                   LaTeX-item-list))
36
37     (TeX-add-symbols
38      '("alert" 1)
39      '("alt" TeX-arg-beamer-overlay-spec 2)
40      '("beamerbutton" 1)
41      '("beamergotobutton" 1)
42      '("beamerreturnbutton" 1)
43      '("beamerskipbutton" 1)
44      '("frame" TeX-arg-beamer-frametitle)
45      '("frametitle" 1)
46      '("hyperlink" TeX-arg-beamer-overlay-spec 2)
47      '("hyperlinkslideprev" TeX-arg-beamer-overlay-spec 1)
48      '("hyperlinkslidenext" TeX-arg-beamer-overlay-spec 1)
49      '("hyperlinkframestart" TeX-arg-beamer-overlay-spec 1)
50      '("hyperlinkframeend" TeX-arg-beamer-overlay-spec 1)
51      '("hyperlinkframestartnext" TeX-arg-beamer-overlay-spec 1)
52      '("hyperlinkframeendprev" TeX-arg-beamer-overlay-spec 1)
53      '("hyperlinkpresentationstart" TeX-arg-beamer-overlay-spec 1)
54      '("hyperlinkpresentationend" TeX-arg-beamer-overlay-spec 1)
55      '("hyperlinkappendixstart" TeX-arg-beamer-overlay-spec 1)
56      '("hyperlinkappendixend" TeX-arg-beamer-overlay-spec 1)
57      '("hyperlinkdocumentstart" TeX-arg-beamer-overlay-spec 1)
58      '("hyperlinkdocumentend" TeX-arg-beamer-overlay-spec 1)
59      '("hypertarget" TeX-arg-beamer-overlay-spec 2)
60      '("institute" 1)
61      '("invisible" TeX-arg-beamer-overlay-spec 1)
62      '("label" TeX-arg-beamer-overlay-spec 1)
63      '("logo" 1)
64      '("note" TeX-arg-beamer-note 1)
65      '("only" TeX-arg-beamer-overlay-spec 1)
66      '("onslide" TeX-arg-beamer-overlay-spec)
67      '("partpage")
68      '("pause")
69      '("structure" TeX-arg-beamer-overlay-spec 1)
70      '("temporal" TeX-arg-beamer-overlay-spec 3)
71      '("titlepage")
72      '("titlegraphic" 1)
73      '("uncover" TeX-arg-beamer-overlay-spec 1)
74      '("visible" TeX-arg-beamer-overlay-spec 1)
75      )
76     
77     (LaTeX-add-environments
78      '("actionenv")
79      '("alertblock" 1)
80      '("beamerboxesrounded" 1)
81      '("block" 1)
82      '("column" "Width")
83      "columns"
84      "columnsonlytextwidth"
85      '("exampleblock" 1)
86      '("onlyenv" (lambda (env &rest ignore)
87                    (LaTeX-insert-environment
88                     env
89                     (let ((overlay (read-input "Overlay: ")))
90                       (if (not (zerop (length overlay)))
91                           (format "<%s>" overlay))))))
92      '("overlayarea" "Area width" "Area height")
93      '("overprint"  (lambda (env &rest ignore)
94                       (LaTeX-insert-environment
95                        env
96                        (let ((overlay (read-input "Overlay: ")))
97                          (if (not (zerop (length overlay)))
98                              (format "{%s}" overlay)))))))
99
100     )))
101
102 (defun TeX-arg-beamer-overlay-spec (optional &optional prompt)
103   "Prompt for overlay specification." 
104   (let ((overlay (read-input "Overlay: ")))
105     (if (not (zerop (length overlay)))
106         (progn (insert "<" overlay ">")))
107     (indent-according-to-mode)))
108
109 (defun TeX-arg-beamer-frametitle (optional &optional prompt)
110   "Prompt for the frametitle."
111   (let ((title (read-input "What title: ")))
112     (if (not (zerop (length title)))
113         (progn (insert TeX-grop TeX-esc "frametitle" TeX-grop 
114                        title TeX-grcl TeX-grcl))
115       (progn (insert TeX-grop TeX-grcl)))))
116
117 (defun LaTeX-item-beamer ()
118   "Insert a new item with an optional overlay argument."
119   (TeX-insert-macro "item")
120   (delete-horizontal-space)
121   (TeX-arg-beamer-overlay-spec 0)
122   (insert " ")
123   (indent-according-to-mode))
124   
125 (defun TeX-arg-beamer-note (optional &optional prompt)
126   "Prompt for overlay specification and optional argument."
127   (let ((overlay (read-input "Overlay: "))
128         (options (read-input "Options: ")))
129     (if (not (zerop (length overlay)))
130         (progn (insert "<" overlay ">")))
131     (if (not (zerop (length options)))
132         (progn (insert "[" options "]")))
133     (indent-according-to-mode)))
134