summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/plain-tex.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/plain-tex.el')
-rw-r--r--elpa/auctex-13.1.3/plain-tex.el330
1 files changed, 330 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/plain-tex.el b/elpa/auctex-13.1.3/plain-tex.el
new file mode 100644
index 0000000..4f06a02
--- /dev/null
+++ b/elpa/auctex-13.1.3/plain-tex.el
@@ -0,0 +1,330 @@
+;;; plain-tex.el --- Support for plain TeX documents. -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2010, 2013, 2016-2018, 2021-2022 Free Software Foundation, Inc.
+
+;; 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.
+
+;;; Commentary:
+
+;; This file provides support for plain TeX in AUCTeX.
+
+;;; Code:
+
+(require 'tex)
+
+;;; Tool bar
+
+(defcustom plain-TeX-enable-toolbar t
+ "Enable TeX tool bar in plain TeX mode."
+ :group 'TeX-tool-bar
+ :type 'boolean)
+
+(defun plain-TeX-maybe-install-toolbar ()
+ "Conditionally install tool bar buttons for plain TeX mode.
+Install tool bar if `plain-TeX-enable-toolbar' and
+`tool-bar-mode' are non-nil."
+ (when (and plain-TeX-enable-toolbar tool-bar-mode)
+ ;; Defined in `tex-bar.el':
+ (TeX-install-toolbar)))
+
+
+;;; Keymap and menu
+
+(defvar plain-TeX-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map TeX-mode-map)
+ map)
+ "Keymap used in plain TeX mode.")
+
+(defvar plain-TeX-menu-entries
+ `(["Macro..." TeX-insert-macro
+ :help "Insert a macro and possibly arguments"]
+ ["Complete" TeX-complete-symbol
+ :help "Complete the current macro"]
+ "-"
+ ("Insert Font"
+ ["Emphasize" (TeX-font nil ?\C-e) :keys "C-c C-f C-e"]
+ ["Bold" (TeX-font nil ?\C-b) :keys "C-c C-f C-b"]
+ ["Typewriter" (TeX-font nil ?\C-t) :keys "C-c C-f C-t"]
+ ["Small Caps" (TeX-font nil ?\C-c) :keys "C-c C-f C-c"]
+ ["Sans Serif" (TeX-font nil ?\C-f) :keys "C-c C-f C-f"]
+ ["Italic" (TeX-font nil ?\C-i) :keys "C-c C-f C-i"]
+ ["Slanted" (TeX-font nil ?\C-s) :keys "C-c C-f C-s"]
+ ["Roman" (TeX-font nil ?\C-r) :keys "C-c C-f C-r"]
+ ["Calligraphic" (TeX-font nil ?\C-a) :keys "C-c C-f C-a"])
+ ("Replace Font"
+ ["Emphasize" (TeX-font t ?\C-e) :keys "C-u C-c C-f C-e"]
+ ["Bold" (TeX-font t ?\C-b) :keys "C-u C-c C-f C-b"]
+ ["Typewriter" (TeX-font t ?\C-t) :keys "C-u C-c C-f C-t"]
+ ["Small Caps" (TeX-font t ?\C-c) :keys "C-u C-c C-f C-c"]
+ ["Sans Serif" (TeX-font t ?\C-f) :keys "C-u C-c C-f C-f"]
+ ["Italic" (TeX-font t ?\C-i) :keys "C-u C-c C-f C-i"]
+ ["Slanted" (TeX-font t ?\C-s) :keys "C-u C-c C-f C-s"]
+ ["Roman" (TeX-font t ?\C-r) :keys "C-u C-c C-f C-r"]
+ ["Calligraphic" (TeX-font t ?\C-a) :keys "C-u C-c C-f C-a"])
+ ["Delete Font" (TeX-font t ?\C-d) :keys "C-c C-f C-d"]
+ "-"
+ ["Comment or Uncomment Region" comment-or-uncomment-region
+ :help "Comment or uncomment the currently selected region"]
+ ["Comment or Uncomment Paragraph" TeX-comment-or-uncomment-paragraph
+ :help "Comment or uncomment the paragraph containing point"]
+ ,TeX-fold-menu
+ "-" . ,TeX-common-menu-entries))
+
+(easy-menu-define plain-TeX-mode-command-menu
+ plain-TeX-mode-map
+ "Command menu used in TeX mode."
+ (TeX-mode-specific-command-menu 'plain-tex-mode))
+
+(easy-menu-define plain-TeX-mode-menu
+ plain-TeX-mode-map
+ "Menu used in plain TeX mode."
+ (cons "TeX" plain-TeX-menu-entries))
+
+
+;;; The mode
+
+(defconst plain-TeX-dialect :plain-tex
+ "Default dialect for use with function `TeX-add-style-hook' for
+argument DIALECT-EXPR when the hook is to be run only on
+plain-TeX file, or any mode derived thereof. See variable
+`TeX-style-hook-dialect'." )
+
+(defcustom plain-TeX-mode-hook nil
+ "A hook run in plain TeX mode buffers."
+ :type 'hook
+ :group 'TeX-misc)
+
+(TeX-abbrev-mode-setup plain-tex-mode)
+
+;;;###autoload
+(defun TeX-plain-tex-mode ()
+ "Major mode in AUCTeX for editing plain TeX files.
+See info under AUCTeX for documentation.
+
+Special commands:
+\\{plain-TeX-mode-map}
+
+Entering `plain-tex-mode' calls the value of `text-mode-hook',
+then the value of `TeX-mode-hook', and then the value
+of `plain-TeX-mode-hook'."
+ (interactive)
+ (plain-TeX-common-initialization)
+ (setq major-mode 'plain-tex-mode)
+ (use-local-map plain-TeX-mode-map)
+ (setq TeX-base-mode-name "TeX")
+ (setq TeX-command-default "TeX")
+ (add-hook 'tool-bar-mode-hook #'plain-TeX-maybe-install-toolbar nil t)
+ (plain-TeX-maybe-install-toolbar)
+ (run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'plain-TeX-mode-hook)
+ (TeX-set-mode-name))
+
+(defun plain-TeX-common-initialization ()
+ "Common initialization for plain TeX like modes."
+ (VirTeX-common-initialization)
+ (set-syntax-table TeX-mode-syntax-table)
+ (setq local-abbrev-table plain-tex-mode-abbrev-table)
+ (set (make-local-variable 'TeX-style-hook-dialect) plain-TeX-dialect)
+ (setq TeX-sentinel-default-function #'TeX-TeX-sentinel)
+ (setq paragraph-start
+ (concat
+ "\\(?:[ \t]*$"
+ "\\|" (regexp-quote TeX-esc) "par\\|"
+ "[ \t]*"
+ (regexp-quote TeX-esc)
+ "\\(?:"
+ "begin\\|end\\|part\\|chapter\\|"
+ "section\\|subsection\\|subsubsection\\|"
+ "paragraph\\|include\\|includeonly\\|"
+ "tableofcontents\\|appendix\\|label\\|caption\\|\\(?:item\\)?item"
+ "\\)"
+ "\\|"
+ "[ \t]*\\$\\$" ; display math delimitor
+ "\\)" ))
+ (setq paragraph-separate
+ (concat
+ "[ \t]*"
+ "\\(?:"
+ (regexp-quote TeX-esc) "par\\|"
+ "%\\|"
+ "$\\|"
+ "\\$\\$\\|"
+ (regexp-quote TeX-esc)
+ "\\(?:"
+ "begin\\|end\\|label\\|caption\\|part\\|chapter\\|"
+ "section\\|subsection\\|subsubsection\\|"
+ "paragraph\\|include\\|includeonly\\|"
+ "tableofcontents\\|appendix\\|" (regexp-quote TeX-esc)
+ "\\)"
+ "\\)"))
+ (setq TeX-header-end (regexp-quote "%**end of header"))
+ (setq TeX-trailer-start (regexp-quote (concat TeX-esc "bye")))
+ (TeX-add-symbols
+ ;; From the TeX Book, Appendix B
+ ;;
+ ;; XXX: This should be refined and extended by somebody who is
+ ;; familiar with plain TeX.
+ "dag"
+ "ddag"
+ "copyright"
+ "TeX"
+ "dots"
+ "break"
+ "nobreak"
+ "allowbreak"
+ "hbox"
+ "slash"
+ "enskip"
+ "quad"
+ "qquad"
+ "enspace"
+ "thinspace"
+ "negthinspace"
+ "smallskip"
+ "medskip"
+ "bigskip"
+ "eject"
+ "supereject"
+ "goodbreak"
+ "filbreak"
+ "smallbreak"
+ "medbreak"
+ "bigbreak"
+ "hrulefill"
+ "dotfill"
+ "rightarrowfill"
+ "leftarrowfill"
+ "upbracefill"
+ "downbracefill"
+ "halign"
+ "valign"
+ "omit"
+ "span"
+ "multispan"
+ "centerline"
+ "rightline"
+ "leftline"
+ "line"
+ "par"
+ "noindent"
+ "frenchspacing"
+ "nonfrenchspacing"
+ "llap"
+ "rlap"
+ "raggedright"
+ "ttraggedright"
+ "raggedbottom"
+ "normalbottom"
+ "obeylines"
+ "obeyspaces"
+ "hsize"
+ "vsize"
+ "hoffset"
+ "voffset"
+ "tolerance"
+ "looseness"
+ "parindent"
+ "baselineskip"
+ "parskip")
+ (TeX-run-style-hooks "TEX"))
+
+
+;;; Miscellaneous
+
+(defcustom plain-TeX-clean-intermediate-suffixes
+ TeX-clean-default-intermediate-suffixes
+ "List of regexps matching suffixes of intermediate files to be deleted.
+The regexps will be anchored at the end of the file name to be matched,
+that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
+ :type '(repeat regexp)
+ :group 'TeX-command)
+
+(defcustom plain-TeX-clean-output-suffixes TeX-clean-default-output-suffixes
+ "List of regexps matching suffixes of output files to be deleted.
+The regexps will be anchored at the end of the file name to be matched,
+that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
+ :type '(repeat regexp)
+ :group 'TeX-command)
+
+
+;;; AmSTeX
+
+(defvar AmSTeX-mode-map
+ (let ((map (make-sparse-keymap)))
+ (set-keymap-parent map TeX-mode-map)
+ map)
+ "Keymap used in `AmSTeX-mode'.")
+
+;; Menu for AmSTeX mode
+(easy-menu-define AmSTeX-mode-command-menu
+ AmSTeX-mode-map
+ "Command menu used in AmSTeX mode."
+ (TeX-mode-specific-command-menu 'ams-tex-mode))
+
+(easy-menu-define AmSTeX-mode-menu
+ AmSTeX-mode-map
+ "Menu used in AmSTeX mode."
+ (cons "AmS-TeX" plain-TeX-menu-entries))
+
+(defcustom AmS-TeX-mode-hook nil
+ "A hook run in AmS-TeX mode buffers."
+ :type 'hook
+ :group 'TeX-misc)
+
+;;;###autoload
+(defun ams-tex-mode ()
+ "Major mode in AUCTeX for editing AmS-TeX files.
+See info under AUCTeX for documentation.
+
+Special commands:
+\\{AmSTeX-mode-map}
+
+Entering `ams-tex-mode' calls the value of `text-mode-hook',
+then the value of `TeX-mode-hook', and then the value
+of `AmS-TeX-mode-hook'."
+ (interactive)
+ (plain-TeX-common-initialization)
+ (setq major-mode 'ams-tex-mode)
+ (use-local-map AmSTeX-mode-map)
+
+ (setq TeX-base-mode-name "AmS-TeX")
+ (setq TeX-command-default "AmSTeX")
+ (run-mode-hooks 'text-mode-hook 'TeX-mode-hook 'AmS-TeX-mode-hook)
+ (TeX-set-mode-name))
+
+(defcustom AmSTeX-clean-intermediate-suffixes
+ TeX-clean-default-intermediate-suffixes
+ "List of regexps matching suffixes of intermediate files to be deleted.
+The regexps will be anchored at the end of the file name to be matched,
+that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
+ :type '(repeat regexp)
+ :group 'TeX-command)
+
+(defcustom AmSTeX-clean-output-suffixes TeX-clean-default-output-suffixes
+ "List of regexps matching suffixes of output files to be deleted.
+The regexps will be anchored at the end of the file name to be matched,
+that is, you do _not_ have to cater for this yourself by adding \\\\\\=' or $."
+ :type '(repeat regexp)
+ :group 'TeX-command)
+
+(provide 'plain-tex)
+
+;;; plain-tex.el ends here