diff options
Diffstat (limited to 'elpa/auctex-13.1.3/plain-tex.el')
| -rw-r--r-- | elpa/auctex-13.1.3/plain-tex.el | 330 | 
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 | 
