[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex d43bfae3fa 54/76: Overhaul beamer.el
From: |
Tassilo Horn |
Subject: |
[elpa] externals/auctex d43bfae3fa 54/76: Overhaul beamer.el |
Date: |
Fri, 13 Jan 2023 14:31:05 -0500 (EST) |
branch: externals/auctex
commit d43bfae3fa7aa016120da7a36ed46b83133e5ba4
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>
Overhaul beamer.el
* style/beamer.el (LaTeX-beamer-after-insert-env): Use `member'
instead of `TeX-member'.
Add comment.
(TeX-arg-beamer-overlay-spec): Simplify by feature implemented
recently in `TeX-arg-string'.
(TeX-arg-beamer-default-overlay-spec): New function.
(TeX-arg-beamer-frametitle,TeX-arg-beamer-note): Delete.
(LaTeX-item-beamer): Accept optional argument for bibitem.
Simplify.
(LaTeX-bibitem-beamer): New function to use `LaTeX-item-beamer'.
(LaTeX-beamer-search-themes): Use `length' instead of `string-width'.
Use `substring-no-properties' instead of `substring'.
(LaTeX-beamer-themes-list,LaTeX-beamer-inner-themes-list)
(LaTeX-beamer-outer-themes-list,LaTeX-beamer-color-themes-list)
(LaTeX-beamer-font-themes-list):
New functions to use with `TeX-arg-completing-read'.
(LaTeX-arg-beamer-theme,LaTeX-arg-beamer-inner-theme)
(LaTeX-arg-beamer-outer-theme,LaTeX-arg-beamer-color-theme)
(LaTeX-arg-beamer-font-theme):
Turn into the above new functions.
(LaTeX-beamer-env-frame): Factor out former lambda form into an
individual function and adapt for new usage in
`LaTeX-add-environments'.
(LaTeX-beamer-section): New function to insert section commands as
well as asking for their optional arguments.
("beamer"): Update support of section commands with the above new
function.
Add and improve input support for many macros and environments.
Add syntax highlight support.
Update local value of `LaTeX-clean-intermediate-suffixes' so that
"Clean" command cleans .vrb files.
(LaTeX-beamer-class-options): Update class options for current
beamer.
* style/beamerarticle.el ("beamerarticle"): Allow (sub)paragraph
commands.
---
style/beamer.el | 702 +++++++++++++++++++++++++++++++++----------------
style/beamerarticle.el | 6 +-
2 files changed, 479 insertions(+), 229 deletions(-)
diff --git a/style/beamer.el b/style/beamer.el
index 589a26ad27..9a33b348c2 100644
--- a/style/beamer.el
+++ b/style/beamer.el
@@ -1,8 +1,9 @@
;;; beamer.el --- AUCTeX style for the latex-beamer class -*-
lexical-binding: t; -*-
-;; Copyright (C) 2003-2021 Free Software Foundation, Inc.
+;; Copyright (C) 2003-2022 Free Software Foundation, Inc.
;; Author: Thomas Baumann <thomas.baumann@ch.tum.de>
+;; Maintainer: auctex-devel@gnu.org
;; Created: 2003-12-20
;; Keywords: tex
@@ -41,7 +42,7 @@
"Do beamer-specific stuff after the insertion of an environment."
;; Add `fragile' as an optional argument to the frame environment if
;; a verbatim environment is inserted.
- (when (and (TeX-member env (LaTeX-verbatim-environments) #'string-equal)
+ (when (and (member env (LaTeX-verbatim-environments))
(save-excursion
(goto-char start)
(string-equal (LaTeX-current-environment) "frame")))
@@ -49,6 +50,7 @@
(when (re-search-backward "\\\\begin[ \t]*{frame}" nil t)
(let ((end-of-begin (match-end 0)))
(goto-char end-of-begin)
+ ;; FIXME: Add support for skipping over overlay options.
(while (forward-comment 1))
(if (eq (char-after) (string-to-char LaTeX-optop))
(progn
@@ -70,16 +72,26 @@
(TeX-run-style-hooks "amsmath" "amssymb" "amsthm" "color" "geometry"
"hyperref" "inputenc" "translator" "xcolor")
- (unless LaTeX-beamer-section-labels-flag
- (make-local-variable 'LaTeX-section-hook)
- (setq LaTeX-section-hook
- '(LaTeX-section-heading
- LaTeX-section-title
- LaTeX-section-section)))
+ (LaTeX-section-list-add-locally
+ '(("part" 0)
+ ("section" 1)
+ ("subsection" 2)
+ ("subsubsection" 3))
+ t)
+ (LaTeX-largest-level-set "part")
+ (make-local-variable 'LaTeX-section-hook)
+ (setq LaTeX-section-hook
+ '(LaTeX-section-heading
+ LaTeX-section-title
+ LaTeX-beamer-section))
+ (if LaTeX-beamer-section-labels-flag
+ (setq LaTeX-section-hook
+ (append LaTeX-section-hook '(LaTeX-section-label))))
(setq LaTeX-item-list
(append '(("itemize" . LaTeX-item-beamer)
- ("enumerate" . LaTeX-item-beamer))
+ ("enumerate" . LaTeX-item-beamer)
+ ("thebibliography" . LaTeX-bibitem-beamer))
LaTeX-item-list))
(setq LaTeX-default-document-environment "frame")
@@ -87,96 +99,240 @@
(LaTeX-paragraph-commands-add-locally "frametitle")
(TeX-add-symbols
- '("alert" [ TeX-arg-beamer-overlay-spec ] 1)
- '("alt" [ TeX-arg-beamer-overlay-spec ] 2)
+ '("AtBeginSection" ["Special star text"] t)
+ '("AtBeginSubsection" ["Special star text"] t)
+ '("AtBeginSubsubsection" ["Special star text"] t)
+ '("AtBeginPart" t)
+ '("AtBeginLecture" t)
+ '("AtBeginNote" t)
+ '("AtEndNote" t)
+ '("action" [TeX-arg-beamer-overlay-spec "Action spec"] t)
+ '("againframe" [TeX-arg-beamer-overlay-spec]
+ [TeX-arg-beamer-default-overlay-spec]
+ ["Options"] "Frame label")
+ '("alert" [TeX-arg-beamer-overlay-spec] 1)
+ '("alt" TeX-arg-beamer-overlay-spec "Text on specified slides"
+ "Text on other slides")
+ '("appendix" [TeX-arg-beamer-overlay-spec "Mode spec"])
+ '("author" [LaTeX-arg-author "Short author names"] LaTeX-arg-author)
+ '("beamerdefaultoverlayspecification"
+ TeX-arg-beamer-default-overlay-spec)
'("beamerbutton" 1)
'("beamergotobutton" 1)
'("beamerreturnbutton" 1)
'("beamerskipbutton" 1)
- '("frame" TeX-arg-beamer-frametitle)
+ '("column" [TeX-arg-beamer-overlay-spec] ["Placement(t,T,c,b)"]
+ (TeX-arg-length "Column width"))
+ '("date" [TeX-arg-date "Short date"] TeX-arg-date)
+ ;; Beamer frame macro is obsolete, and standard LaTeX frame macro
+ ;; is available in frame environment.
+ ;; '("frame" TeX-arg-beamer-frametitle)
+ "framebreak" "noframebreak"
+ '("framelatex" t)
'("frametitle"
- (TeX-arg-eval TeX-read-string "Title: " nil
'LaTeX-beamer-frametitle-history))
- '("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)
+ [TeX-arg-beamer-overlay-spec] ["Short title"]
+ (TeX-arg-string "Title" nil LaTeX-beamer-frametitle-history))
+ '("framesubtitle" [TeX-arg-beamer-overlay-spec] "Subtitle")
+ '("framezoom" (TeX-arg-beamer-overlay-spec "Overlay having button")
+ (TeX-arg-beamer-overlay-spec "Zoomed overlay") ["Options"]
+ (TeX-arg-pair "Upper left X" "Upper left Y")
+ (TeX-arg-pair "Zoom area width" "Zoom area depth"))
+ '("hyperlink" [TeX-arg-beamer-overlay-spec] "Target name" t)
+ '("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)
+ '("hyperlinksectionstart" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksectionend" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksectionstartnext" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksectionendprev" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksubsectionstart" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksubsectionend" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksubsectionstartnext" [TeX-arg-beamer-overlay-spec] 1)
+ '("hyperlinksubsectionendprev" [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] "Target name" t)
+ '("includegraphics" [TeX-arg-beamer-overlay-spec]
+ [LaTeX-arg-graphicx-includegraphics-key-val] LaTeX-arg-includegraphics)
+ '("includeonlyframes" "Frame label(s)")
+ '("includeonlylecture" "Lecture label")
+ '("includeslide" ["Options"] "Label")
+ '("institute" ["Short institute name"] t)
+ '("invisible" [TeX-arg-beamer-overlay-spec] 1)
+ '("keywords" t)
+ '("label" [TeX-arg-beamer-overlay-spec] TeX-arg-label)
+ '("lecture" ["Short lecture name"] "Lecture name" "Lecture label")
'("logo" 1)
- '("note" TeX-arg-beamer-note 1)
- '("only" [ TeX-arg-beamer-overlay-spec ] 1)
- '("onslide" [ TeX-arg-beamer-overlay-spec ])
- '("partpage")
+ '("mode" [TeX-arg-beamer-overlay-spec "Mode"] t)
+ "mode*"
+
+ ;; Adapted copies from latex.el
+ '("newcommand<>" TeX-arg-define-macro [TeX-arg-define-macro-arguments] t)
+ '("renewcommand<>" TeX-arg-macro [TeX-arg-define-macro-arguments] t)
+ '("newenvironment<>" TeX-arg-define-environment
+ [TeX-arg-define-macro-arguments] 2)
+ '("renewenvironment<>" TeX-arg-environment
+ [TeX-arg-define-macro-arguments] 2)
+
+ ;; TODO: Support the case \note is used outside frame env.
+ '("note" [TeX-arg-beamer-overlay-spec] ["Options"] t)
+ '("only" [TeX-arg-beamer-overlay-spec] 1)
+ '("onslide" [TeX-arg-beamer-overlay-spec])
+ "partpage"
'("pause" ["Slide number"])
- '("structure" [ TeX-arg-beamer-overlay-spec ] 1)
- '("temporal" [ TeX-arg-beamer-overlay-spec ] 3)
- '("titlepage")
+ '("resetcounteronoverlays" TeX-arg-counter)
+ "sectionpage"
+ '("setbeameroption" t)
+ '("setbeamersize" t)
+ '("setjobnamebeamerversion" "Filename without extension")
+ '("structure" [TeX-arg-beamer-overlay-spec] 1)
+ "subsectionpage"
+ '("subtitle" ["Short subtitle"] t)
+ '("subject" t)
+ '("tableofcontents" ["Options"])
+ '("temporal" TeX-arg-beamer-overlay-spec
+ "Before slide text" "Default text" "After slide text")
+ "titlepage"
+ '("title" ["Short title"] t)
'("titlegraphic" 1)
- '("uncover" [ TeX-arg-beamer-overlay-spec ] 1)
- '("usetheme" LaTeX-arg-beamer-theme)
- '("useinnertheme" LaTeX-arg-beamer-inner-theme)
- '("useoutertheme" LaTeX-arg-beamer-outer-theme)
- '("usecolortheme" LaTeX-arg-beamer-color-theme)
- '("usefonttheme" LaTeX-arg-beamer-font-theme)
- '("usetheme" LaTeX-arg-beamer-theme)
- '("visible" [ TeX-arg-beamer-overlay-spec ] 1))
+
+ '("transblindshorizontal" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transblindsvertical" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transboxin" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transboxout" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transcover" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transdissolve" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transfade" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transfly" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transglitter" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transpush" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transreplace" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transsplitverticalin" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transsplitverticalout" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transsplithorizontalin" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transsplithorizontalout" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transwipe" [TeX-arg-beamer-overlay-spec] ["Options"])
+ '("transduration" [TeX-arg-beamer-overlay-spec] "Seconds")
+
+ '("uncover" [TeX-arg-beamer-overlay-spec] t)
+ '("usetheme" ["Options"]
+ (TeX-arg-completing-read (LaTeX-beamer-themes-list) "Theme"))
+ '("useinnertheme" ["Options"]
+ (TeX-arg-completing-read (LaTeX-beamer-inner-themes-list) "Theme"))
+ '("useoutertheme" ["Options"]
+ (TeX-arg-completing-read (LaTeX-beamer-outer-themes-list) "Theme"))
+ '("usecolortheme" ["Options"]
+ (TeX-arg-completing-read (LaTeX-beamer-color-themes-list) "Theme"))
+ '("usefonttheme" ["Options"]
+ (TeX-arg-completing-read (LaTeX-beamer-font-themes-list) "Theme"))
+ '("setbeamercolor" "Beamer color" "Color specification")
+ '("setbeamercolor*" "Beamer color" "Color specification")
+ '("usebeamercolor" ["fg or bg"] "Beamer color")
+ '("usebeamercolor*" ["fg or bg"] "Beamer color")
+ '("setbeamerfont" "Beamer font" "Font attributes")
+ '("setbeamerfont*" "Beamer font" "Font attributes")
+ '("usebeamerfont" "Beamer font")
+ '("usebeamerfont*" "Beamer font")
+ '("setbeamertemplate" "Element" ["Predefined option"] t)
+ '("addtobeamertemplate" "Element" "Pre text" "Post test")
+ '("defbeamertemplate" [TeX-arg-beamer-overlay-spec "Mode spec"]
+ "Element" "Predefined option" [TeX-arg-define-macro-arguments] t)
+ '("defbeamertemplatealias" "Element" "New predefined option"
+ "Existing predefined option")
+ '("defbeamertemplateparent" "Parent template name"
+ ["Predefined option"] "Child template list"
+ [TeX-arg-define-macro-arguments] t)
+ '("ifbeamercolorempty" ["fg or bg"] "Beamer color name"
+ "If undefined" "If defined")
+ '("setbeamercovered" "Options")
+ '("opaqueness" [TeX-arg-beamer-overlay-spec] "Opaqueness (in %)")
+
+ '("visible" [TeX-arg-beamer-overlay-spec] 1))
+
+ ;; TODO: Font commands accept overlay specs.
+ ;; Support commands to manipulate templates?
(LaTeX-add-environments
- '("actionenv")
- '("alertblock" 1)
- '("beamerboxesrounded" 1)
- '("block" (lambda (env &rest ignore)
- (LaTeX-insert-environment
- env (format "{%s}" (TeX-read-string "Title: ")))))
- '("column" "Width")
- "columns"
- "columnsonlytextwidth"
- '("exampleblock" 1)
- '("frame" (lambda (env &rest ignore)
- (let ((title (TeX-read-string "(Optional) Title: " nil
-
'LaTeX-beamer-frametitle-history)))
- (LaTeX-insert-environment env)
- (unless (zerop (length title))
- (save-excursion
- (LaTeX-find-matching-begin)
- (end-of-line)
- (LaTeX-newline)
- ;; Indent the next macro insertion and don't
- ;; rely on the fill-function to do it:
- (indent-according-to-mode)
- (insert (format "\\frametitle{%s}" title))
- ;; This works because \frametitle is a
- ;; paragraph command.
- (when auto-fill-function
- (backward-char)
- (LaTeX-fill-paragraph)))))))
- '("onlyenv" (lambda (env &rest ignore)
- (LaTeX-insert-environment
- env
- (let ((overlay (TeX-read-string "(Optional) Overlay: ")))
- (unless (zerop (length overlay))
- (format "<%s>" overlay))))))
- '("overlayarea" "Area width" "Area height")
- '("overprint" (lambda (env &rest ignore)
- (LaTeX-insert-environment
- env
- (let ((width (TeX-read-string "(Optional) Area width:
")))
- (unless (zerop (length width))
- (format "[%s]" width))))))
- "semiverbatim")
-
- (LaTeX-largest-level-set "section")
+ '("abstract" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"])
+ '("actionenv" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"])
+ '("alertblock" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] "Title")
+ '("beamerboxesrounded" ["Options"] "Header")
+ '("beamercolorbox" ["Options"] "Beamer color")
+ '("block" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] "Title")
+ '("column" LaTeX-env-args [TeX-arg-beamer-overlay-spec]
+ ["Placement(t,T,c,b)"] (TeX-arg-length "Width"))
+ '("columns" LaTeX-env-args [TeX-arg-beamer-overlay-spec] ["Options"])
+ ;; FIXME: Not on user reference.
+ ;; "columnsonlytextwidth"
+ '("exampleblock" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] "Title")
+ '("frame" LaTeX-env-args [TeX-arg-beamer-overlay-spec]
+ [TeX-arg-beamer-default-overlay-spec]
+ [TeX-arg-key-val (("allowdisplaybreaks" ("0" "1" "2" "3" "4"))
+ ("allowframebreaks") ("b") ("c") ("t") ("s")
+ ("noframenumbering")
+ ("fragile" ("singleslide"))
+ ("environment") ("label") ("plain") ("shrink")
+ ("squeeze"))]
+ LaTeX-beamer-env-frame)
+
+ '("onlyenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+ '("altenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec]
+ "Begin text" "End text" "Alternate begin text" "Alternate end text")
+ '("visibleenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+ '("uncoverenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+ '("invisibleenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+
+ '("structureenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+ '("alertenv" LaTeX-env-args [TeX-arg-beamer-overlay-spec])
+
+ '("theorem" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("corollary" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("definition" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("definitions" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("fact" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("lemma" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("example" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("examples" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Additional text"])
+ '("proof" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"] ["Proof name"])
+
+ '("overlayarea" LaTeX-env-args
+ (TeX-arg-length "Area width") (TeX-arg-length "Area height"))
+ '("overprint" LaTeX-env-args [TeX-arg-length "Area width"])
+ "semiverbatim"
+
+ '("verse" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"])
+ '("quotation" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"])
+ '("quote" LaTeX-env-args
+ [TeX-arg-beamer-overlay-spec "Action spec"]))
+
+ ;; TODO: itemize, enumerate and description envs accept default
+ ;; overlay spec as optional argument.
+ ;; We definitely need more completion support for both macros and
+ ;; environments.
+
(LaTeX-add-counters "lecture" "part" "section" "subsection" "subsubsection"
"subsectionslide" "framenumber" "figure" "table"
"beamerpauses")
@@ -192,7 +348,67 @@
("subtitle" "[{")
("author" "[{")
("date" "[{")
- ("frametitle" "<[{")) 'slide-title)))
+ ("institute" "[{")
+ ("frametitle" "<[{")
+ ("framesubtitle" "<[{"))
+ 'slide-title)
+ (font-latex-add-keywords '(("item" "<[")
+ ("bibitem" "<[{"))
+ 'textual)
+ (font-latex-add-keywords '(("textbf" "<{")
+ ("textsc" "<{")
+ ("textup" "<{"))
+ 'bold-command)
+ (font-latex-add-keywords '(("emph" "<{")
+ ("textit" "<{")
+ ("textsl" "<{"))
+ 'italic-command)
+ (font-latex-add-keywords '(("textmd" "<{")
+ ("textrm" "<{")
+ ("textsf" "<{")
+ ("texttt" "<{")
+ ("textnormal" "<{")
+ ("textcolor" "<[{"))
+ 'type-command)
+ (font-latex-add-keywords '(("color" "<[{"))
+ 'type-declaration)
+ (font-latex-add-keywords '(("label" "<{")
+ ("hyperlink" "<{{<")
+ ("hypertarget" "<{{"))
+ 'reference)
+ (font-latex-add-keywords '(("pause" "[")
+ ("logo" "{")
+ ("newcommand" "<|{\\[[{")
+ ("renewcommand" "<|{\\[[{")
+ ("newenvironment" "<{[[{{")
+ ("renewenvironment" "<{[[{{")
+ ("AtBeginSection" "[{")
+ ("AtBeginSubsection" "[{")
+ ("AtBeginSubsubsection" "[{")
+ ("AtBeginPart" "{")
+ ("AtBeginLecture" "{")
+ ("titlepage" "")
+ ("sectionpage" "")
+ ("subsectionpage" "")
+ ("partpage" "")
+ ("tableofcontents" "[")
+ ("column" "<[{")
+ ("againframe" "<[[{")
+ ("usetheme" "[{")
+ ("usecolortheme" "[{")
+ ("usefonttheme" "[{")
+ ("useinnertheme" "[{")
+ ("useoutertheme" "[{")
+ ("includeonlyframes" "{")
+ ("includeonlylecture" "{"))
+ 'function)
+ (font-latex-add-keywords '(("resetcounteronoverlays" "{"))
+ 'variable))
+ ;; TODO: Adjust section commands to accept <> option.
+
+ ;; Additional intermediate files
+ (add-to-list (make-local-variable 'LaTeX-clean-intermediate-suffixes)
+ "\\.vrb"))
TeX-dialect)
(defun TeX-arg-beamer-overlay-spec (optional &optional prompt)
@@ -200,47 +416,55 @@
If OPTIONAL is non-nil, insert the specification only if
non-empty and enclosed in \"<>\". PROMPT replaces the standard
one."
- (let ((TeX-arg-opening-brace "<")
- (TeX-arg-closing-brace ">"))
- (TeX-argument-insert
- (TeX-read-string
- (TeX-argument-prompt optional prompt "Overlay"))
- optional)
- (indent-according-to-mode)))
-
-(defun TeX-arg-beamer-frametitle (_optional &optional _prompt)
- "Prompt for the frametitle."
- (let ((title (TeX-read-string "Title: " nil
'LaTeX-beamer-frametitle-history)))
- (if (not (zerop (length title)))
- (insert TeX-grop TeX-esc "frametitle" TeX-grop
- title TeX-grcl TeX-grcl)
- (insert TeX-grop TeX-grcl))))
-
-(defun LaTeX-item-beamer ()
- "Insert a new item with an optional overlay argument. You
-can turn off the prompt for the overlay argument by setting
-`LaTeX-beamer-item-overlay-flag' to nil. Calling the function
+ (TeX-arg-string optional (or prompt "Overlay") nil nil nil "<" ">")
+ (indent-according-to-mode))
+
+(defun TeX-arg-beamer-default-overlay-spec (optional)
+ "Prompt for default overlay specification.
+If OPTIONAL is non-nil, insert the specification only if
+non-empty and enclosed in \"<>\". If empty and OPTIONAL is nil,
+insert just \"{}\"."
+ (let ((spec (TeX-read-string
+ (TeX-argument-prompt optional nil "Default overlay"))))
+ (cond
+ ((< 0 (length spec))
+ (TeX-argument-insert (concat "<" spec ">") optional))
+ ((not optional)
+ ;; Clear default for \beamerdefaultoverlayspecification.
+ (insert TeX-grop TeX-grcl))
+ (t
+ ;; Nop for clarity.
+ nil))))
+
+;; (defun TeX-arg-beamer-frametitle (_optional &optional _prompt)
+;; "Prompt for the frametitle."
+;; (let ((title (TeX-read-string "Title: " nil
'LaTeX-beamer-frametitle-history)))
+;; (if (not (zerop (length title)))
+;; (insert TeX-grop TeX-esc "frametitle" TeX-grop
+;; title TeX-grcl TeX-grcl)
+;; (insert TeX-grop TeX-grcl))))
+
+(defun LaTeX-item-beamer (&optional macro)
+ "Insert a new item with an optional overlay argument.
+You can turn off the prompt for the overlay argument by setting
+`LaTeX-beamer-item-overlay-flag' to nil. Calling the function
with a prefix argument prompts for the overlay specification
-unconditionally."
- (if (listp current-prefix-arg)
- (setq current-prefix-arg (car current-prefix-arg))
- current-prefix-arg)
- (TeX-insert-macro "item")
+unconditionally.
+
+Optional MACRO can be, for example, \"bibitem\"."
+ (TeX-insert-macro (or macro "item"))
(delete-horizontal-space)
(if (or current-prefix-arg LaTeX-beamer-item-overlay-flag)
- (TeX-arg-beamer-overlay-spec 0))
- (insert " ")
- (indent-according-to-mode))
+ (TeX-arg-beamer-overlay-spec t))
+ (insert " "))
-(defun TeX-arg-beamer-note (_optional &optional _prompt)
- "Prompt for overlay specification and optional argument."
- (let ((overlay (TeX-read-string "(Optional) Overlay: "))
- (options (TeX-read-string "(Optional) Options: ")))
- (unless (zerop (length overlay))
- (insert "<" overlay ">"))
- (unless (zerop (length options))
- (insert "[" options "]"))
- (indent-according-to-mode)))
+(defun LaTeX-bibitem-beamer ()
+ "Insert a new bibitem with an optional overlay argument.
+You can turn off the prompt for the overlay argument by setting
+`LaTeX-beamer-item-overlay-flag' to nil. Calling the function
+with a prefix argument prompts for the overlay specification
+unconditionally."
+ (LaTeX-item-beamer "bibitem"))
(defun LaTeX-beamer-search-themes (&optional regexp extensions length)
"Search for beamer themes matching REGEXP with EXTENSIONS.
@@ -252,7 +476,7 @@ also be a string. Then the length of the string is used."
(chars (cond ((integerp length)
length)
((stringp length)
- (string-width length))
+ (length length))
;; Try some DWIM magic...
((and (not length)
(string-match "beamer[A-Za-z0-9]*theme" match))
@@ -265,117 +489,139 @@ also be a string. Then the length of the string is
used."
(lambda (file)
(let ((case-fold-search nil))
(and (numberp (string-match match file))
- (substring file chars))))
+ (substring-no-properties file chars))))
(TeX-search-files nil exts t t))))))
-(defun LaTeX-arg-beamer-theme (&rest _ignore)
- "Prompt for beamer theme with completion."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt nil nil "Theme")
- (mapcar #'list
- (cond ((eq LaTeX-beamer-themes 'local)
- (set (make-local-variable 'LaTeX-beamer-themes)
- (LaTeX-beamer-search-themes)))
- ((functionp LaTeX-beamer-themes)
- (funcall LaTeX-beamer-themes))
- ((listp LaTeX-beamer-themes)
- LaTeX-beamer-themes)
- (t (error
- "`LaTeX-beamer-themes' should be a list: `%s'"
- LaTeX-beamer-themes))))
- nil nil nil)
- t))
-
-(defun LaTeX-arg-beamer-inner-theme (&rest _ignore)
- "Prompt for beamer inner theme with completion."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt nil nil "Theme")
- (mapcar #'list
- (cond ((eq LaTeX-beamer-inner-themes 'local)
- (set (make-local-variable 'LaTeX-beamer-inner-themes)
- (LaTeX-beamer-search-themes "^beamerinnertheme")))
- ((functionp LaTeX-beamer-inner-themes)
- (funcall LaTeX-beamer-inner-themes))
- ((listp LaTeX-beamer-inner-themes)
- LaTeX-beamer-inner-themes)
- (t (error
- "`LaTeX-beamer-inner-themes' should be a list: `%s'"
- LaTeX-beamer-inner-themes))))
- nil nil nil)
- t))
-
-(defun LaTeX-arg-beamer-outer-theme (&rest _ignore)
- "Prompt for beamer outer theme with completion."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt nil nil "Theme")
- (mapcar #'list
- (cond ((eq LaTeX-beamer-outer-themes 'local)
- (set (make-local-variable 'LaTeX-beamer-outer-themes)
- (LaTeX-beamer-search-themes "^beameroutertheme")))
- ((functionp LaTeX-beamer-outer-themes)
- (funcall LaTeX-beamer-outer-themes))
- ((listp LaTeX-beamer-outer-themes)
- LaTeX-beamer-outer-themes)
- (t (error
- "`LaTeX-beamer-outer-themes' should be a list: `%s'"
- LaTeX-beamer-outer-themes))))
- nil nil nil)
- t))
-
-(defun LaTeX-arg-beamer-color-theme (&rest _ignore)
- "Prompt for beamer color theme with completion."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt nil nil "Theme")
- (mapcar #'list
- (cond ((eq LaTeX-beamer-color-themes 'local)
- (set (make-local-variable 'LaTeX-beamer-color-themes)
- (LaTeX-beamer-search-themes "^beamercolortheme")))
- ((functionp LaTeX-beamer-color-themes)
- (funcall LaTeX-beamer-color-themes))
- ((listp LaTeX-beamer-color-themes)
- LaTeX-beamer-color-themes)
- (t (error
- "`LaTeX-beamer-color-themes' should be a list: `%s'"
- LaTeX-beamer-color-themes))))
- nil nil nil)
- t))
-
-(defun LaTeX-arg-beamer-font-theme (&rest _ignore)
- "Prompt for beamer font theme with completion."
- (TeX-argument-insert
- (completing-read
- (TeX-argument-prompt nil nil "Theme")
- (mapcar #'list
- (cond ((eq LaTeX-beamer-font-themes 'local)
- (set (make-local-variable 'LaTeX-beamer-font-themes)
- (LaTeX-beamer-search-themes "^beamerfonttheme")))
- ((functionp LaTeX-beamer-font-themes)
- (funcall LaTeX-beamer-font-themes))
- ((listp LaTeX-beamer-font-themes)
- LaTeX-beamer-font-themes)
- (t (error
- "`LaTeX-beamer-font-themes' should be a list: `%s'"
- LaTeX-beamer-font-themes))))
- nil nil nil)
- t))
+(defun LaTeX-beamer-themes-list ()
+ "Return a list of beamer themes for completion."
+ (cond ((eq LaTeX-beamer-themes 'local)
+ (set (make-local-variable 'LaTeX-beamer-themes)
+ (LaTeX-beamer-search-themes)))
+ ((functionp LaTeX-beamer-themes)
+ (funcall LaTeX-beamer-themes))
+ ((listp LaTeX-beamer-themes)
+ LaTeX-beamer-themes)
+ (t (error
+ "`LaTeX-beamer-themes' should be a list: `%s'"
+ LaTeX-beamer-themes))))
+
+(defun LaTeX-beamer-inner-themes-list ()
+ "Return a list of beamer inner themes for completion."
+ (cond ((eq LaTeX-beamer-inner-themes 'local)
+ (set (make-local-variable 'LaTeX-beamer-inner-themes)
+ (LaTeX-beamer-search-themes "^beamerinnertheme")))
+ ((functionp LaTeX-beamer-inner-themes)
+ (funcall LaTeX-beamer-inner-themes))
+ ((listp LaTeX-beamer-inner-themes)
+ LaTeX-beamer-inner-themes)
+ (t (error
+ "`LaTeX-beamer-inner-themes' should be a list: `%s'"
+ LaTeX-beamer-inner-themes))))
+
+(defun LaTeX-beamer-outer-themes-list ()
+ "Return a list of beamer outer themes for completion."
+ (cond ((eq LaTeX-beamer-outer-themes 'local)
+ (set (make-local-variable 'LaTeX-beamer-outer-themes)
+ (LaTeX-beamer-search-themes "^beameroutertheme")))
+ ((functionp LaTeX-beamer-outer-themes)
+ (funcall LaTeX-beamer-outer-themes))
+ ((listp LaTeX-beamer-outer-themes)
+ LaTeX-beamer-outer-themes)
+ (t (error
+ "`LaTeX-beamer-outer-themes' should be a list: `%s'"
+ LaTeX-beamer-outer-themes))))
+
+(defun LaTeX-beamer-color-themes-list ()
+ "Return a list of beamer color themes for completion."
+ (cond ((eq LaTeX-beamer-color-themes 'local)
+ (set (make-local-variable 'LaTeX-beamer-color-themes)
+ (LaTeX-beamer-search-themes "^beamercolortheme")))
+ ((functionp LaTeX-beamer-color-themes)
+ (funcall LaTeX-beamer-color-themes))
+ ((listp LaTeX-beamer-color-themes)
+ LaTeX-beamer-color-themes)
+ (t (error
+ "`LaTeX-beamer-color-themes' should be a list: `%s'"
+ LaTeX-beamer-color-themes))))
+
+(defun LaTeX-beamer-font-themes-list ()
+ "Return a list of beamer font themes for completion."
+ (cond ((eq LaTeX-beamer-font-themes 'local)
+ (set (make-local-variable 'LaTeX-beamer-font-themes)
+ (LaTeX-beamer-search-themes "^beamerfonttheme")))
+ ((functionp LaTeX-beamer-font-themes)
+ (funcall LaTeX-beamer-font-themes))
+ ((listp LaTeX-beamer-font-themes)
+ LaTeX-beamer-font-themes)
+ (t (error
+ "`LaTeX-beamer-font-themes' should be a list: `%s'"
+ LaTeX-beamer-font-themes))))
+
+(defun LaTeX-beamer-env-frame (_ignored)
+ "Insert beamer frame environment title."
+ (let ((title (TeX-read-string "(Optional) Title: " nil
+ 'LaTeX-beamer-frametitle-history)))
+ (unless (zerop (length title))
+ (save-excursion
+ (LaTeX-newline)
+ ;; Indent the next macro insertion and don't rely on the
+ ;; fill-function to do it:
+ (indent-according-to-mode)
+ (insert (format "\\frametitle{%s}" title))
+ ;; This works because \frametitle is a paragraph command.
+ (when auto-fill-function
+ (backward-char)
+ (LaTeX-fill-paragraph))))))
+
+(defun LaTeX-beamer-section ()
+ "Hook to prompt for beamer section and insert it."
+ (let ((star (string-suffix-p "*" LaTeX-name))
+ mode-spec short-title)
+ (when (and LaTeX-level (< LaTeX-level 4))
+ (setq mode-spec (TeX-read-string "(Optional) Mode spec: ")
+ short-title (unless star
+ (TeX-read-string "(Optional) Short title: "))))
+ ;; The rest of this function is adapted copy of
+ ;; `LaTeX-section-section'.
+ (unless (save-excursion
+ (re-search-backward
+ (concat "^\\s-*\n\\s-*\\=\\|^\\s-*" (regexp-quote TeX-esc)
+ "begin")
+ (line-beginning-position 0) t))
+ (LaTeX-newline))
+ (insert TeX-esc (if star
+ (substring-no-properties LaTeX-name 0 -1)
+ LaTeX-name))
+ (if (< 0 (length mode-spec))
+ (insert "<" mode-spec ">"))
+ (if star (insert "*"))
+ (if (< 0 (length short-title))
+ (insert LaTeX-optop short-title LaTeX-optcl))
+ (insert TeX-grop)
+ (if (zerop (length LaTeX-title))
+ (set-marker LaTeX-done-mark (point)))
+ (insert LaTeX-title TeX-grcl)
+ (LaTeX-newline)
+ ;; If RefTeX is available, tell it that we've just made a new section
+ (and (fboundp 'reftex-notice-new-section)
+ (reftex-notice-new-section))))
(defun LaTeX-beamer-class-options ()
"Read the beamer class options from the user."
(TeX-load-style "hyperref")
+ (TeX-load-style "color")
+ (TeX-load-style "xcolor")
(TeX-read-key-val t '(("usepdftitle" ("false")) ("envcountsect")
("notheorems") ("noamsthm") ("compress") ("t") ("c")
- ("leqno") ("fleqn") ("handout") ("trans") ("pdftex")
- ("nativepdf") ("pdfmark") ("dvips") ("dviwindo")
- ("dvipsone") ("vtex") ("ps2pdf") ("ignorenonframetext")
+ ("leqno") ("fleqn") ("handout") ("trans")
+ ("ignorenonframetext") ("onlytextwidth")
("noamssymb") ("bigger") ("smaller") ("8pt") ("9pt")
("10pt") ("11pt") ("12pt") ("14pt") ("17pt") ("20pt")
("draft") ("CJK") ("cjk") ("pgf")
("hyperref" LaTeX-hyperref-package-options-list)
- ("color") ("xcolor") ("ucs") ("utf8x") ("utf8")
- ("aspectratio" ("1610" "169" "149" "54" "43" "32")))))
+ ("color" LaTeX-color-package-options)
+ ("xcolor" LaTeX-xcolor-package-options)
+ ("ucs") ("utf8x") ("utf8")
+ ("aspectratio" ("2013" "1610" "169" "149" "141" "54"
"43" "32")))))
;;; beamer.el ends here
diff --git a/style/beamerarticle.el b/style/beamerarticle.el
index 136947ac17..09d58163b5 100644
--- a/style/beamerarticle.el
+++ b/style/beamerarticle.el
@@ -32,4 +32,8 @@
(TeX-add-style-hook
"beamerarticle"
(lambda ()
- (TeX-run-style-hooks "beamer")))
+ (TeX-run-style-hooks "beamer")
+
+ (LaTeX-section-list-add-locally
+ '(("paragraph" 4)
+ ("subparagraph" 5)))))
- [elpa] externals/auctex 2342a342f9 08/76: Simplify implementation of style/bigstrut.el, (continued)
- [elpa] externals/auctex 2342a342f9 08/76: Simplify implementation of style/bigstrut.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex aaf71ede5d 04/76: Simplify implementation of style/ntheorem.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex d55a960018 19/76: Simplify implementation of style/changes.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex fb9c5645dc 49/76: * style/ltxtable.el ("ltxtable"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 5b693f4e2e 42/76: ; * style/hyperref.el ("hyperref"): Don't use list inside vector., Tassilo Horn, 2023/01/13
- [elpa] externals/auctex f84b1a5fdb 43/76: Simplify implementation of style/ifthen.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex e772b93525 53/76: * style/mdframed.el ("mdframed"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 1c7a1b582e 23/76: Simplify implementation of style/csquotes.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex eca0fadbc3 18/76: ; Trivial cleanups, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex b2b899a450 66/76: ; * style/pstricks.el (LaTeX-package-parameter-value): Pacify compiler., Tassilo Horn, 2023/01/13
- [elpa] externals/auctex d43bfae3fa 54/76: Overhaul beamer.el,
Tassilo Horn <=
- [elpa] externals/auctex 287da56401 30/76: Revert "Bind a value to `LaTeX-current-environment' locally", Tassilo Horn, 2023/01/13
- [elpa] externals/auctex ee9e8a2b6e 11/76: Move `TeX-TikZ-point-name-regexp' to tex-style.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex a648993763 22/76: * style/comment.el ("comment"): Replace `TeX-arg-eval'., Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 5f129b5dca 58/76: Support starred variant name, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 288665587a 57/76: Use `symbol-value' instead of `eval', Tassilo Horn, 2023/01/13
- [elpa] externals/auctex d3ab64f893 60/76: Reduce redundancy in regexp, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex f9b378a45c 70/76: Support detached arguments, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 7da1860c2a 26/76: Support starred section names, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex d937d4035c 16/76: Simplify implementation of style/changelog.el, Tassilo Horn, 2023/01/13
- [elpa] externals/auctex 906e57dfb8 68/76: ; * style/physics.el: Write proper date., Tassilo Horn, 2023/01/13