diff --git a/tex.el b/tex.el index b85a72a..b3e9465 100644 --- a/tex.el +++ b/tex.el @@ -2513,6 +2513,16 @@ Return nil otherwise." (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) (re-search-forward "^%+ *TeX-master:" nil t))) +(defun TeX-add-document-variables (&rest var-val) + "Set first element of SYM-VAL to the next one, and so on. + +The variables are set if current file is not the master. This is +used to store variables shared among the whole document into the +auto-saved file." + (unless (equal TeX-master t) + (while var-val + (set (pop var-val) (pop var-val))))) + ;;; Style Paths (defcustom TeX-style-global (expand-file-name "style" TeX-data-directory) @@ -3988,22 +3998,29 @@ If TEX is a directory, generate style files for all files in the directory." LaTeX-provided-class-options)) (pkg-opts (if (boundp 'LaTeX-provided-package-options) LaTeX-provided-package-options)) - (tex-cmd-opts TeX-command-extra-options) (verb-envs (when (boundp 'LaTeX-verbatim-environments-local) LaTeX-verbatim-environments-local)) (verb-macros-delims (when (boundp 'LaTeX-verbatim-macros-with-delims-local) LaTeX-verbatim-macros-with-delims-local)) (verb-macros-braces (when (boundp 'LaTeX-verbatim-macros-with-braces-local) LaTeX-verbatim-macros-with-braces-local)) - (dialect TeX-style-hook-dialect)) + (dialect TeX-style-hook-dialect) + (master (equal TeX-master t)) + tex-cmd-opts) + (when master + (setq tex-cmd-opts TeX-command-extra-options)) (TeX-unload-style style) (with-current-buffer (generate-new-buffer file) (erase-buffer) (insert "(TeX-add-style-hook\n \"" style "\"\n (lambda ()") - (unless (string= tex-cmd-opts "") - (insert "\n (setq TeX-command-extra-options\n" - " " (prin1-to-string tex-cmd-opts) ")")) + (and + ;; Save only if current file is the master. + master + (null (string= tex-cmd-opts "")) + (insert "\n (TeX-add-document-variables" + "\n 'TeX-command-extra-options\n" + " " (prin1-to-string tex-cmd-opts) ")")) (when class-opts (insert "\n (TeX-add-to-alist 'LaTeX-provided-class-options\n" " '" (prin1-to-string class-opts) ")"))