diff options
Diffstat (limited to 'elpa/auctex-13.1.3/tex-bar.el')
-rw-r--r-- | elpa/auctex-13.1.3/tex-bar.el | 509 |
1 files changed, 0 insertions, 509 deletions
diff --git a/elpa/auctex-13.1.3/tex-bar.el b/elpa/auctex-13.1.3/tex-bar.el deleted file mode 100644 index a9863f8..0000000 --- a/elpa/auctex-13.1.3/tex-bar.el +++ /dev/null @@ -1,509 +0,0 @@ -;;; tex-bar.el --- toolbar icons on AUCTeX in GNU emacs. -*- lexical-binding: t; -*- - -;; Copyright (C) 2004-2022 Free Software Foundation, Inc. - -;; This program 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 of -;; the License, or (at your option) any later version. - -;; This program 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 this program; if not, write to the Free -;; Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, -;; MA 02110-1301 USA - -;; Author: Miguel V. S. Frasson <frasson@math.leidenuniv.nl> -;; Keywords: tool-bar, tex, latex - -;;; Commentary: -;; - -;; This package also needs `toolbar-x.el', and `latex.el' for the -;; symbol-toolbar. - -;;; Use of this preliminary version: - -;; - Add `LaTeX-install-toolbar' to `LaTeX-mode-hook'. - -;; Special requirements for the use of experimental symbol-toolbar: - -;; - Customize `TeX-bar-LaTeX-buttons', adding the label -;; `LaTeX-symbols-experimental' at the end. - -;; - You should have a folder called "symb-pics" with the pics of the -;; symbols (xpm format is a good one), and the *parent* of this -;; folder should be in `load-path'. -;; Did you read carefully this item? I will say again: the folder -;; "symb-pics" should *not* be in `load-path', but its *parent*. - -;; - each image file is named after the command that it represents in -;; the following rules: the base name is the name of the command -;; without the escape character "\", like \delta -> "delta.xpm"; -;; however, since in some OS filenames are case insensitive, all -;; occurences of capital letter should be replaced by the letter -;; plus a dash: \Rightarrow -> "R-ightarrow.xpm" --- actually, for -;; the correct name, apply `TeX-bar-img-filename' to "Rightarrow" -;; (TeX-bar-img-filename "Rightarrow") -;; --> "R-ightarrow" -;; The function `TeX-bar-img-filename' also treats special commands -;; like `\{', `\|', etc. - -;; You can get the symbol images on (temporary solution) -;; http://www.math.leidenuniv.nl/~frasson/symb-pics.tar.gz - -;;; Code: - -(require 'custom) - -(require 'toolbar-x) - -(require 'tex) - -;; For the symbol toolbar -(require 'latex) - -;;; Standard buttons - -;; help strings -(defun TeX-bar-help-from-command-list (item) - "Return the help string of ITEM in `TeX-command-list'. -If there is no help, the empty string is returned." - (let ((help (nth 1 (memq :help (assoc item TeX-command-list))))) - (if help help ""))) - -(defgroup TeX-tool-bar nil - "Tool bar support in AUCTeX." - :group 'AUCTeX) - -(defcustom TeX-bar-TeX-buttons - '(new-file open-file dired kill-buffer save-buffer cut copy paste undo - separator tex next-error view bibtex spell) - "List of buttons available in `tex-mode'. -It should be a list in the same format of the BUTTONS parameter -in function `toolbarx-install-toolbar', often a symbol that -labels a button. - -Type `\\[TeX-bar-TeX-buttons]' for a list of available buttons. - -Buttons are defined in alists (labels associated to properties -that define a button). For a list of variables that hold such -alists, see variable `TeX-bar-TeX-all-button-alists'." - :type '(list (set :inline t - (const new-file) - (const open-file) - (const dired) - (const kill-buffer) - (const save-buffer) - (const write-file) - (const undo) - (const cut) - (const copy) - (const paste) - (const search-forward) - (const print-buffer) - (const separator) - (const tex) - (const next-error) - (const view) - (const file) - (const bibtex) - (const clean) - (const spell)) - ;; (const latex-symbols-experimental) - (repeat (choice (symbol :tag "Label") - (sexp :tag "General element")))) - :group 'TeX-tool-bar) - -(defgroup TeX-tool-bar-button-definitions nil - "Collections of button definitions." - :group 'TeX-tool-bar) - -(defcustom TeX-bar-TeX-all-button-alists - '(TeX-bar-TeX-button-alist - toolbarx-default-toolbar-meaning-alist) - "List of variables that hold buttons properties. -Each element should be a symbol bound to list in the format of -the argument BUTTON-ALIST in function `toolbarx-install-toolbar'." - :type '(repeat variable) - :group 'TeX-tool-bar-button-definitions) - -(defcustom TeX-bar-TeX-button-alist - '((tex :image (lambda nil (if TeX-PDF-mode "pdftex" "tex")) - :command (progn - (TeX-save-document #'TeX-master-file) - (TeX-command "TeX" #'TeX-master-file -1)) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "TeX"))) - (pdftex :image "pdftex" - :command (progn - (TeX-save-document #'TeX-master-file) - (TeX-command "PDFTeX" #'TeX-master-file -1)) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "PDFTeX"))) - (next-error :image "error" - :command TeX-next-error - :enable (TeX-error-report-has-errors-p) - :visible (TeX-error-report-has-errors-p)) - (view :image (lambda nil (if TeX-PDF-mode "viewpdf" "viewdvi")) - :command (TeX-command "View" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "View"))) - (file :image "dvips" - :command (TeX-command "File" #'TeX-master-file -1) - :visible (not TeX-PDF-mode) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "File"))) - (bibtex :image "bibtex" - :command (TeX-command "BibTeX" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "BibTeX"))) - (clean :image "delete" - :command (TeX-command "Clean" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "Clean"))) - (spell :image "spell" - :command (TeX-command "Spell" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "Spell")))) - ;; latex-symbols-experimental? - "Alist for button definitions in TeX bar. -Value should le a list where each element is of format (KEY . -PROPS), where KEY is a symbol that labels the button and PROPS is -a list of properties of the button. For a description of the -format of PROPS, please see documentation of function -`toolbarx-install-toolbar'. This custom variable is in the same -format of the argument MEANING-ALIST in the mentioned function." - :type '(alist :key-type symbol :value-type sexp) - :group 'TeX-tool-bar-button-definitions) - -(defun TeX-bar-TeX-buttons () - "Display in a buffer a list of buttons for `tex-bar.el'." - (interactive) - (let ((assqs-button-alists) - (labels)) - (dolist (m-alist TeX-bar-TeX-all-button-alists) - (setq labels nil) - (dolist (as (eval m-alist t)) - (setq labels (cons (car as) labels))) - (setq assqs-button-alists (cons (cons m-alist (nreverse labels)) - assqs-button-alists))) - (setq assqs-button-alists (nreverse assqs-button-alists)) - ;; displaying results - (with-current-buffer (get-buffer-create "*TeX tool bar buttons*") - (erase-buffer) - (insert "Available buttons for TeX mode -================================") - (dolist (i assqs-button-alists) - (insert (format "\n\n`%s' provides the following buttons:\n " (car i))) - (dolist (j (cdr i)) - (insert (format " %s" j))) - (fill-region (point-at-bol) (point-at-eol)))) - (display-buffer "*TeX tool bar buttons*" t))) - -;;; Installation of the tool bar -;;;###autoload -(defun TeX-install-toolbar () - "Install toolbar buttons for TeX mode." - (interactive) - (add-to-list 'toolbarx-image-path - (expand-file-name "images" TeX-data-directory)) - (add-hook 'TeX-PDF-mode-hook #'toolbarx-refresh nil t) - (toolbarx-install-toolbar TeX-bar-TeX-buttons - (let ((append-list)) - (dolist (elt TeX-bar-TeX-all-button-alists) - (setq append-list (append append-list - (eval elt t)))) - append-list))) - -(defcustom TeX-bar-LaTeX-buttons - '(new-file open-file dired kill-buffer save-buffer cut copy paste undo - separator latex next-error view bibtex spell) - "List of buttons available in `latex-mode'. -It should be a list in the same format of the BUTTONS parameter -in function `toolbarx-install-toolbar', often a symbol that -labels a button. - -Type `\\[TeX-bar-LaTeX-buttons]' for a list of available buttons. - -Buttons are defined in alists (labels associated to properties -that define a button). For a list of variables that hold such -alists, see variable `TeX-bar-LaTeX-all-button-alists'." - :type '(list (set :inline t - (const new-file) - (const open-file) - (const dired) - (const kill-buffer) - (const save-buffer) - (const write-file) - (const undo) - (const cut) - (const copy) - (const paste) - (const search-forward) - (const print-buffer) - (const separator) - (const latex) - (const next-error) - (const view) - (const file) - (const bibtex) - (const clean) - (const spell) - (const latex-symbols-experimental)) - (repeat (choice (symbol :tag "Label") - (sexp :tag "General element")))) - :group 'TeX-tool-bar) - -(defcustom TeX-bar-LaTeX-all-button-alists - '(TeX-bar-LaTeX-button-alist - toolbarx-default-toolbar-meaning-alist) - "List of variables that hold buttons properties. -Each element should be a symbol bound to list in the format of -the argument BUTTON-ALIST in function `toolbarx-install-toolbar'." - :type '(repeat variable) - :group 'TeX-tool-bar-button-definitions) - -(defcustom TeX-bar-LaTeX-button-alist - '((latex :image (lambda nil (if TeX-PDF-mode "pdftex" "tex")) - :command (progn - (TeX-save-document #'TeX-master-file) - (TeX-command "LaTeX" #'TeX-master-file -1)) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "LaTeX"))) - (pdflatex :image "pdftex" - :command (progn - (TeX-save-document #'TeX-master-file) - (TeX-command "PDFLaTeX" #'TeX-master-file -1)) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "PDFLaTeX"))) - (next-error :image "error" - :command TeX-next-error - :enable (TeX-error-report-has-errors-p) - :visible (TeX-error-report-has-errors-p)) - (view :image (lambda nil (if TeX-PDF-mode "viewpdf" "viewdvi")) - :command (TeX-command "View" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "View"))) - (file :image "dvips" - :command (TeX-command "File" #'TeX-master-file -1) - :visible (not TeX-PDF-mode) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "File"))) - (bibtex :image "bibtex" - :command (TeX-command (if LaTeX-using-Biber "Biber" "BibTeX") - #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list - (if LaTeX-using-Biber "Biber" "BibTeX")))) - (clean :image "delete" - :command (TeX-command "Clean" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "Clean"))) - (spell :image "spell" - :command (TeX-command "Spell" #'TeX-master-file -1) - :help (lambda (&rest ignored) - (TeX-bar-help-from-command-list "Spell"))) - (latex-symbols-experimental . (:alias :eval-group - LaTeX-symbols-toolbar-switch-contents - LaTeX-symbols-toolbar-contents))) - "Alist for button definitions in TeX bar. -Value should le a list where each element is of format (KEY . -PROPS), where KEY is a symbol that labels the button and PROPS is -a list of properties of the button. For a description of the -format of PROPS, please see documentation of function -`toolbarx-install-toolbar'. This custom variable is in the same -format of the argument MEANING-ALIST in the mentioned function." - :type '(alist :key-type symbol :value-type sexp) - :group 'TeX-tool-bar-button-definitions) - -(defun TeX-bar-LaTeX-buttons () - "Display in a buffer a list of buttons for `tex-bar.el'." - (interactive) - (let ((assqs-button-alists) - (labels)) - (dolist (m-alist TeX-bar-LaTeX-all-button-alists) - (setq labels nil) - (dolist (as (eval m-alist t)) - (setq labels (cons (car as) labels))) - (setq assqs-button-alists (cons (cons m-alist (nreverse labels)) - assqs-button-alists))) - (setq assqs-button-alists (nreverse assqs-button-alists)) - ;; displaying results - (with-current-buffer (get-buffer-create "*TeX tool bar buttons*") - (erase-buffer) - (insert "Available buttons for LaTeX mode -================================") - (dolist (i assqs-button-alists) - (insert (format "\n\n`%s' provides the following buttons:\n " (car i))) - (dolist (j (cdr i)) - (insert (format " %s" j))) - (fill-region (point-at-bol) (point-at-eol)))) - (display-buffer "*TeX tool bar buttons*" t))) - -;;; Installation of the tool bar -;;;###autoload -(defun LaTeX-install-toolbar () - "Install toolbar buttons for LaTeX mode." - (interactive) - (add-to-list 'toolbarx-image-path - (expand-file-name "images" TeX-data-directory)) - (add-hook 'TeX-PDF-mode-hook #'toolbarx-refresh nil t) - ;; Refresh the toolbar after styles update because `LaTeX-using-Biber' value - ;; could have been changed. Append the refresh to the hook so it is run after - ;; the other styles-related changes. - (add-hook 'TeX-update-style-hook #'toolbarx-refresh t t) - (toolbarx-install-toolbar TeX-bar-LaTeX-buttons - (let ((append-list)) - (dolist (elt TeX-bar-LaTeX-all-button-alists) - (setq append-list (append append-list - (eval elt t)))) - append-list))) - -;;; Experimental Symbol Toolbar - -;;; symbol toolbar -(defun TeX-bar-img-filename (tex-command) - "Return the filename (no extension) for the image button of TEX-COMMAND." - (let ((str-list (append tex-command nil)) - (str-result)) - (dolist (i str-list) - (cond - ;; capital letter -> letter + "-" - ((and (>= i ?A) (<= i ?Z)) - (setq str-result (cons ?- (cons i str-result)))) - ;; lowercase letter -> letter - ((and (>= i ?a) (<= i ?z)) - (setq str-result (cons i str-result))) - ;; open curly brackets `{' -> "ocb--" - ((eq i ?{) - (setq str-result (cons ?o str-result)) - (setq str-result (cons ?c str-result)) - (setq str-result (cons ?b str-result)) - (setq str-result (cons ?- str-result)) - (setq str-result (cons ?- str-result))) - ;; close curly brackets `}' -> "ccb--" - ((eq i ?}) - (setq str-result (cons ?c str-result)) - (setq str-result (cons ?c str-result)) - (setq str-result (cons ?b str-result)) - (setq str-result (cons ?- str-result)) - (setq str-result (cons ?- str-result))) - ;; vertical bar `|' -> "v--" - ((eq i ?|) - (setq str-result (cons ?v str-result)) - (setq str-result (cons ?- str-result)) - (setq str-result (cons ?- str-result))) - ;; slash `/' -> "s--" - ((eq i ?/) - (setq str-result (cons ?s str-result)) - (setq str-result (cons ?- str-result)) - (setq str-result (cons ?- str-result))))) - (concat (nreverse str-result)))) - -(let* ((menu-strings-buttons-alist - ;; make a alist os strings with the symbol classes and store it in - ;; `menu-strings-alist' - (let* ((menu-strings-alist-temp)) - (dolist (item-external (cdr LaTeX-math-menu) - (nreverse menu-strings-alist-temp)) - (when (listp item-external) - ;; if first element is vector, I am supposing that all are - ;; vectors as well - (if (vectorp (cadr item-external)) - (let* ((menu-str (car item-external)) - (menu-buttons)) - (dolist (button (cdr item-external)) - (setq menu-buttons - (cons (list (intern (TeX-bar-img-filename - (aref button 0))) - :image - (concat "symb-pics/" - (TeX-bar-img-filename - (aref button 0))) - :help (aref button 0) - :command (aref button 1)) - menu-buttons))) - (setq menu-buttons (nreverse menu-buttons)) - (setq menu-strings-alist-temp - (cons (cons menu-str (list menu-buttons)) - menu-strings-alist-temp))) - ;; if another list (therefore, up to second level menu) - (let ((parent-str (concat (car item-external) " "))) - (dolist (item-internal (cdr item-external)) - (unless (equal (car item-internal) "Special") - (let* ((menu-str (concat parent-str - (car item-internal))) - (menu-buttons)) - (dolist (button (cdr item-internal)) - (setq menu-buttons - (cons (list (intern (aref button 0)) - :image - (concat "symb-pics/" - (TeX-bar-img-filename - (aref button 0))) - :help (aref button 0) - :command (aref button 1)) - menu-buttons))) - (setq menu-buttons (nreverse menu-buttons)) - (setq menu-strings-alist-temp - (cons (cons menu-str (list menu-buttons)) - menu-strings-alist-temp))))))))))) - (list-strings (let* ((list-str-temp)) - (dolist (i menu-strings-buttons-alist - (nreverse list-str-temp)) - (setq list-str-temp (cons (car i) - list-str-temp)))))) - (defvar LaTeX-symbols-toolbar-visible-flag nil - "Non-nil means that the LaTeX symbols on toolbar are visible. -Internal variable.") - (defconst LaTeX-symbols-toolbar-switch-contents - `(;; the on-off switch button - (latex-symbols-switch - :image (lambda nil (if LaTeX-symbols-toolbar-visible-flag - "ltx-symb-turn-off" - "ltx-symb-turn-on")) - :command (progn - (setq LaTeX-symbols-toolbar-visible-flag - (not LaTeX-symbols-toolbar-visible-flag)) - (toolbarx-refresh)) - ;; help message depends on if symb-toolbar is on or off, and in - ;; the name of the current class of symbols - :help (lambda (&rest ignore) - (concat "Turn " - (if LaTeX-symbols-toolbar-visible-flag "off " "on ") - "the toolbar of LaTeX symbols (current class: " - (nth (1- LaTeX-symbols-active-menuitem) - (quote ,list-strings)) - ")"))) - ;; the dropdown button, that also switch on the symbols - ,(append '(:dropdown-group) - list-strings - '(:variable - LaTeX-symbols-active-menuitem - :save offer - :dropdown-prepend-command - (setq LaTeX-symbols-toolbar-visible-flag t) - :dropdown-help "Select a class of symbols to be displayed")))) - (defconst LaTeX-symbols-toolbar-contents - (let* ((ltx-symb) - (count 0)) - (dolist (i menu-strings-buttons-alist - (append (nreverse ltx-symb) - '(:insert - LaTeX-symbols-toolbar-visible-flag - :toolbar (bottom . top)))) - (setq count (1+ count)) - (setq ltx-symb - (cons (append (cdr i) - `(:insert (eq LaTeX-symbols-active-menuitem - ,count))) - ltx-symb)))))) - -(provide 'tex-bar) - -;;; tex-bar.el ends here |