summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/subfiles.el
diff options
context:
space:
mode:
authormattkae <mattkae@protonmail.com>2022-05-17 07:07:37 -0400
committermattkae <mattkae@protonmail.com>2022-05-17 07:07:37 -0400
commitbecff06c71d277647eda4378203d03ab36e141eb (patch)
treea1f73bba3676f34e0faf76764f5de963321f5576 /elpa/auctex-13.1.3/style/subfiles.el
parent3f4a0d5370ae6c34afe180df96add3b8522f4af1 (diff)
Evil mode and latex support
Diffstat (limited to 'elpa/auctex-13.1.3/style/subfiles.el')
-rw-r--r--elpa/auctex-13.1.3/style/subfiles.el107
1 files changed, 107 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/subfiles.el b/elpa/auctex-13.1.3/style/subfiles.el
new file mode 100644
index 0000000..49df08c
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/subfiles.el
@@ -0,0 +1,107 @@
+;;; subfiles.el --- AUCTeX style for the subfiles package. -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2016, 2018, 2020 Free Software Foundation, Inc.
+
+;; Author: Uwe Brauer <oub@mat.ucm.es>
+;; Created: 07 Nov 2016
+;; 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.
+
+;; Acknowledgements
+;; Mosè Giordano <mose@gnu.org>
+;; Arash Esbati <arash@gnu.org>
+
+;;; Commentary:
+
+;; This file adds support for the subfiles package.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(declare-function reftex-compile-variables
+ "reftex"
+ ())
+
+(defvar LaTeX-subfiles-package-options nil
+ "Package options for the subfiles package.")
+
+(defun LaTeX-subfiles-class-options ()
+ "Return name of the main file relative to current subfile."
+ (file-relative-name
+ (read-file-name
+ "Main file: " nil nil nil nil
+ (lambda (texfiles)
+ (string-match "\\.tex\\'" texfiles)))
+ (TeX-master-directory)))
+
+(TeX-add-style-hook
+ "subfiles"
+ (lambda ()
+
+ ;; The following code will run `TeX-run-style-hooks' on the subfile
+ ;; master file. Thanks to Mosè Giordano <mose@gnu.org> for
+ ;; presenting a better solution using `assoc'.
+ (let ((master-file (cadr (assoc "subfiles" LaTeX-provided-class-options))))
+ (when (stringp master-file)
+ (TeX-run-style-hooks
+ (file-name-sans-extension master-file))))
+
+ (TeX-add-symbols
+ '("subfile" TeX-arg-file)
+ '("subfileinclude" TeX-arg-file))
+
+ ;; Ensure that \subfile and \subfileinclude stay in one line
+ (LaTeX-paragraph-commands-add-locally '("subfile" "subfileinclude"))
+
+ ;; Tell AUCTeX that \subfile loads a file. regexp is the same as
+ ;; for \input or \include. This will run `TeX-run-style-hooks' on
+ ;; subfile(s) when master file is loaded.
+ (TeX-auto-add-regexp
+ `(,(concat
+ "\\\\subfile\\(?:include\\)?"
+ "{\\(\\.*[^#}%\\\\\\.\n\r]+\\)\\(\\.[^#}%\\\\\\.\n\r]+\\)?}")
+ 1 TeX-auto-file))
+
+ ;; Tell RefTeX the same thing.
+ (when (and (boundp 'reftex-include-file-commands)
+ (not (string-match "subfile"
+ (mapconcat #'identity
+ reftex-include-file-commands
+ "|"))))
+ (make-local-variable 'reftex-include-file-commands)
+ (add-to-list 'reftex-include-file-commands "subfile\\(?:include\\)?" t)
+ (reftex-compile-variables))
+
+ ;; The following code will fontify \subfile{} and
+ ;; \subfileinclude{} like \input.
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("subfile" "{")
+ ("subfileinclude" "{"))
+ 'reference)))
+ TeX-dialect)
+
+;;; subfiles.el ends here