diff options
author | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-06-07 08:23:47 -0400 |
commit | bd18a38c2898548a3664a9ddab9f79c84f2caf4a (patch) | |
tree | 95b9933376770381bd8859782ae763be81c2d72b /elpa/auctex-13.1.3/style/splitidx.el | |
parent | b07628dddf418d4f47b858e6c35fd3520fbaeed2 (diff) | |
parent | ef160dea332af4b4fe5e2717b962936c67e5fe9e (diff) |
Merge conflict
Diffstat (limited to 'elpa/auctex-13.1.3/style/splitidx.el')
-rw-r--r-- | elpa/auctex-13.1.3/style/splitidx.el | 315 |
1 files changed, 0 insertions, 315 deletions
diff --git a/elpa/auctex-13.1.3/style/splitidx.el b/elpa/auctex-13.1.3/style/splitidx.el deleted file mode 100644 index edf52c2..0000000 --- a/elpa/auctex-13.1.3/style/splitidx.el +++ /dev/null @@ -1,315 +0,0 @@ -;;; splitidx.el --- AUCTeX style for `splitidx.sty' (v1.2a) -*- lexical-binding: t; -*- - -;; Copyright (C) 2016, 2018, 2020 Free Software Foundation, Inc. - -;; Author: Arash Esbati <arash@gnu.org> -;; Maintainer: auctex-devel@gnu.org -;; Created: 2015-09-19 -;; 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 adds support for `splitidx.sty' (v1.2a) from 2013/04/09. -;; `splitidx.sty' is part of TeXLive. - -;; The main index macro provided by `splitidx.sty' is -;; -;; \sindex[<shortcut>]{<index-entry>} -;; -;; where <shortcut> identifies the target where <index-entry> is going -;; into. This style checks if RefTeX is loaded and adds "\sindex" to -;; index macros known by RefTeX; this is described in RefTeX manual -;; section 5.5 Defining Index Macros: -;; -;; (setq reftex-index-macros '(("\\sindex[]{*}" 1 ?s "" nil t))) -;; -;; To make things more user friendly, this style does not hard-code -;; the key `?s' and offers a customizable variable called -;; `LaTeX-splitidx-sindex-reftex-quick-id-key'. Customize this -;; variable to another unique key if you have other preference. Also -;; note the integer 1 after "\\sindex[]{*}". This tells RefTeX to -;; look in first optional argument to find out which index the entry -;; belongs to. If omitted, RefTeX puts the index entry into "idx". - -;; `splitidx.sty' provides also the option `idxcommands' where a -;; command with the name of the <shortcut> is defined for each -;; declared index. An example from splitidx.pdf: -;; -;; \documentclass{article} -;; \usepackage[idxcommands]{splitidx} -;; -;; \newindex[General Index]{idx} % Name and shortcut of the 1st index -;; \newindex[Index of Animals]{ani} % ... 2nd index -;; \newindex[Index of Fruits]{fru} % ... 3rd index -;; \newindex[Index of Vegetables]{veg} % ... 4th index -;; ... -;; -;; Now four index commands \idx, \ani, \fru and \veg are available. -;; This style adds these commands to AUCTeX and RefTeX (check function -;; `LaTeX-splitidx-auto-cleanup'). The only thing missing is adding -;; these commands to `reftex-index-macros' since the unique keys must -;; be set by user. To get full advantage from RefTeX, remember that -;; ?i, ?I, and ?g are reserved and set something like this in your -;; init-file: -;; -;; (add-to-list 'reftex-index-macros '("\\idx" "idx" ?x "" nil t)) -;; (add-to-list 'reftex-index-macros '("\\ani" "ani" ?a "" nil t)) -;; (add-to-list 'reftex-index-macros '("\\fru" "fru" ?f "" nil t)) -;; (add-to-list 'reftex-index-macros '("\\veg" "veg" ?v "" nil t)) -;; -;; Or you can do this in your tex file: -;; -;; %%% Local Variables: -;; %%% mode: latex -;; %%% TeX-master: t -;; %%% eval: (add-to-list 'reftex-index-macros '("\\idx" "idx" ?x "" nil t)) -;; %%% eval: (add-to-list 'reftex-index-macros '("\\ani" "ani" ?a "" nil t)) -;; %%% eval: (add-to-list 'reftex-index-macros '("\\fru" "fru" ?f "" nil t)) -;; %%% eval: (add-to-list 'reftex-index-macros '("\\veg" "veg" ?v "" nil t)) -;; %%% End: -;; - -;;; Code: - -;; Needed for auto-parsing: -(require 'tex) -(require 'latex) - -;; Silence the compiler: -(declare-function font-latex-add-keywords - "font-latex" - (keywords class)) - -;; Setup parsing for \newindex: -(TeX-auto-add-type "splitidx-newindex" "LaTeX" "splitidx-newindices") - -(defvar LaTeX-splitidx-newindex-regex - `(,(concat "\\\\new\\(?:protected\\)?index" - "\\(?:\\[[^]]*\\]\\)?" - "{\\([^}]+\\)}") - 1 LaTeX-auto-splitidx-newindex) - "Matches the argument of `\\newindex' from `splitidx.sty'.") - -(defun LaTeX-splitidx-auto-prepare () - "Clear `LaTeX-auto-splitidx-newindex' before parsing." - (setq LaTeX-auto-splitidx-newindex nil)) - -(defun LaTeX-splitidx-auto-cleanup () - "Process parsed results for \"splitidx.sty\"." - (when (LaTeX-provided-package-options-member "splitidx" "idxcommands") - (dolist (elt (mapcar #'car (LaTeX-splitidx-newindex-list))) - ;; Make every element available as a command - (TeX-add-symbols `(,elt TeX-arg-index)) - ;; Add new macros's to `ispell-tex-skip-alist': skip one argument - (TeX-ispell-skip-setcar `((,elt ispell-tex-arg-end))) - ;; font-locking - (when (and (featurep 'font-latex) - (eq TeX-install-font-lock 'font-latex-setup)) - (font-latex-add-keywords `((,elt "{")) - 'reference)) - ;; Prepare for parsing - (add-to-list 'LaTeX-auto-regexp-list - `(,(concat - "\\\\" - elt - "{\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*" - "}[^}{]*\\)*}[^}{]*\\)*\\)}") - 1 LaTeX-auto-index-entry)) - ;; Cater for completion - (add-to-list 'TeX-complete-list - `(,(concat "\\\\" elt "{\\([^{}\n\r]*\\)") - 1 LaTeX-index-entry-list "}")) ))) - -(add-hook 'TeX-auto-prepare-hook #'LaTeX-splitidx-auto-prepare t) -(add-hook 'TeX-auto-cleanup-hook #'LaTeX-splitidx-auto-cleanup t) -(add-hook 'TeX-update-style-hook #'TeX-auto-parse t) - -(TeX-add-style-hook - "splitidx" - (lambda () - - (TeX-add-symbols - - ;; 3.1 Setup - '("newindex" - [ "Index name" ] - (TeX-arg-eval - (lambda () - (let ((shortcut (TeX-read-string - (TeX-argument-prompt nil nil "Short cut")))) - (LaTeX-add-splitidx-newindices shortcut) - (format "%s" shortcut))))) - - ;; 3.2 Marking up index entries - '("sindex" - ;; I don't use `[ TeX-arg-index-tag ]' here - [ TeX-arg-eval completing-read - (TeX-argument-prompt t nil "Short cut") - (LaTeX-splitidx-newindex-list) ] - TeX-arg-index) - - ;; 3.4 Customizing index entries - '("AtWriteToIndex" - (TeX-arg-eval completing-read - (TeX-argument-prompt nil nil "Short cut") - (LaTeX-splitidx-newindex-list)) - t) - - '("AtNextWriteToIndex" - (TeX-arg-eval completing-read - (TeX-argument-prompt nil nil "Short cut") - (LaTeX-splitidx-newindex-list)) - t) - - ;; 3.6 Preventing premature expansion of index entries - '("newprotectedindex" - [ "Index name" ] - (TeX-arg-eval - (lambda () - (let ((shortcut (TeX-read-string - (TeX-argument-prompt nil nil "Short cut")))) - (LaTeX-add-splitidx-newindices shortcut) - (format "%s" shortcut))))) - - ;; 3.7 Including the generated indices in your document - '("printindex" - [ TeX-arg-eval completing-read - (TeX-argument-prompt t nil "Short cut") - (LaTeX-splitidx-newindex-list) ] - [ "Index name" ]) - - '("printindex*" 0) - - '("printsubindex" - [ TeX-arg-eval completing-read - (TeX-argument-prompt t nil "Short cut") - (LaTeX-splitidx-newindex-list) ] - [ "Index name" ]) - - '("printsubindex*" 0) - - '("setindexpreamble" - [ TeX-arg-eval completing-read - (TeX-argument-prompt t nil "Short cut") - (LaTeX-splitidx-newindex-list) ] - t) - - '("useindexpreamble" [ TeX-arg-macro ]) - - '("indexshortcut" 0) - - '("extendtheindex" 4) ) - - ;; Add splitidx to the parser. - (TeX-auto-add-regexp LaTeX-splitidx-newindex-regex) - - ;; Borrowed from index.el - (add-to-list 'LaTeX-auto-regexp-list - `(,(concat "\\\\sindex\\(?:\\[[^{}]*\\]\\)?" - "{\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*" - "}[^}{]*\\)*}[^}{]*\\)*\\)}") - 1 LaTeX-auto-index-entry)) - - ;; Completion for \sindex entries - (add-to-list 'TeX-complete-list - '("\\\\sindex\\(\\[[^][{}]*\\]\\)?{\\([^{}\n\r]*\\)" - 2 LaTeX-index-entry-list "}")) - - ;; Completion for the |see macro - (add-to-list 'TeX-complete-list - '("|see{\\([^{}\n\r]*\\)" 1 LaTeX-index-entry-list)) - - ;; Tell RefTeX with `reftex-add-index-macros' - (when (fboundp 'reftex-add-index-macros) - (reftex-add-index-macros - `(("\\sindex[]{*}" 1 ,LaTeX-splitidx-sindex-reftex-quick-id-key "" nil t)))) - - ;; 3.2 Marking up index entries - ;; \index should be an alias for \sindex - (when (LaTeX-provided-package-options-member "splitidx" "useindex") - (TeX-add-symbols - '("index" - [TeX-arg-eval completing-read - (TeX-argument-prompt t nil "Short cut") - (LaTeX-splitidx-newindex-list) ] - (TeX-arg-index))) - ;; Tell RefTeX to look in the optional arg. for the index short cut - (when (fboundp 'reftex-add-index-macros) - (reftex-add-index-macros '(("\\index[]{*}" 1 ?i "" nil t)))) - (add-to-list 'LaTeX-auto-regexp-list - `(,(concat - "\\\\index\\(?:\\[[^{}]*\\]\\)?" - "{\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*" - "}[^}{]*\\)*}[^}{]*\\)*\\)}") - 1 LaTeX-auto-index-entry)) - (when (and (featurep 'font-latex) - (eq TeX-install-font-lock 'font-latex-setup)) - (font-latex-add-keywords '(("index" "[{")) - 'reference))) - - ;; 3.5 Automatic custom index commands - ;; With package option `idxcommands', one can write \foo{<entry>} - ;; instead of \sindex[foo]{<entry>} - (when (and (LaTeX-provided-package-options-member "splitidx" "idxcommands") - (LaTeX-splitidx-newindex-list)) - (dolist (elt (mapcar #'car (LaTeX-splitidx-newindex-list))) - ;; Make every `foo' available as a command - (TeX-add-symbols `(,elt TeX-arg-index)) - ;; Add new macros's to `ispell-tex-skip-alist': skip one argument - (TeX-ispell-skip-setcar `((,elt ispell-tex-arg-end))) - ;; Cater for font-locking - (when (and (featurep 'font-latex) - (eq TeX-install-font-lock 'font-latex-setup)) - (font-latex-add-keywords `((,elt "{")) - 'reference)) - ;; Add defined <entry> to `LaTeX-index-entry-list' - (add-to-list 'LaTeX-auto-regexp-list - `(,(concat - "\\\\" - elt - "{\\([^}{]*\\({[^}{]*\\({[^}{]*\\({[^}{]*}[^}{]*\\)*" - "}[^}{]*\\)*}[^}{]*\\)*\\)}") - 1 LaTeX-auto-index-entry)) )) - - ;; Fontification - (when (and (featurep 'font-latex) - (eq TeX-install-font-lock 'font-latex-setup)) - (font-latex-add-keywords '(("newindex" "[{") - ("AtWriteToIndex" "{{") - ("AtNextWriteToIndex" "{{") - ("newprotectedindex" "[{") - ("setindexpreamble" "[{") - ("useindexpreamble" "[") - ("extendtheindex" "{{{{")) - 'function) - (font-latex-add-keywords '(("sindex" "[{")) - 'reference))) - TeX-dialect) - -(defvar LaTeX-splitidx-package-options - '("makeindex" - "useindex" - "allintoone" - "split" - "protected" - "idxcommands") - "Prompt for package options for the splitidx package.") - -;;; splitidx.el ends here |