Index: ChangeLog =================================================================== RCS file: /sources/auctex/auctex/ChangeLog,v retrieving revision 5.1627 diff -u -u -p -r5.1627 ChangeLog --- ChangeLog 26 Oct 2008 17:51:29 -0000 5.1627 +++ ChangeLog 30 Oct 2008 13:38:28 -0000 @@ -1,3 +1,7 @@ +2008-10-30 Timothy Toolan + + * tex.el (TeX-expand-list): Add %M. + 2008-10-26 Ralf Angeli * tex.el (plain-TeX-common-initialization): Respect double dollar, Index: tex.el =================================================================== RCS file: /sources/auctex/auctex/tex.el,v retrieving revision 5.635 diff -u -u -p -r5.635 tex.el --- tex.el 26 Oct 2008 17:50:58 -0000 5.635 +++ tex.el 30 Oct 2008 13:38:28 -0000 @@ -500,7 +500,8 @@ string." ;; case the file is in a different subdirectory ("%b" TeX-current-file-name-master-relative) ;; the following is for preview-latex. - ("%m" preview-create-subdirectory)) + ("%m" preview-create-subdirectory) + ("%M" preview-create-prv-directory)) "List of expansion strings for TeX command names. Each entry is a list with two or more elements. The first element is Index: preview/ChangeLog =================================================================== RCS file: /sources/auctex/auctex/preview/ChangeLog,v retrieving revision 1.871 diff -u -u -p -r1.871 ChangeLog --- preview/ChangeLog 10 May 2008 20:16:07 -0000 1.871 +++ preview/ChangeLog 30 Oct 2008 13:38:28 -0000 @@ -1,3 +1,27 @@ +2008-10-30 Timothy Toolan + + * latex/preview.dtx: Remove \nofiles from the auctex option. + Rename .aux file names to contain no directory component. + + * preview.el (preview-dvipng-command, preview-dvips-command) + (preview-fast-dvips-command, preview-pdf2dsc-command): Add temp + directory path component to input file. + (preview-dvips-abort, preview-gs-dvips-sentinel) + (preview-dvipng-place-all): Add temp directory path component to + file to be deleted. + (preview-LaTeX-command): Remove \nofiles command. + (preview-create-prv-directory): Add function. + (preview-create-subdirectory): Change TeX-active-master to + TeX-master-file. + (preview-start-pdf2dsc): Add temp directory path component to + input file. + (preview-dump-replacements, preview-undump-replacements): Add + -output-directory option and insert temp directory path. + (preview-nodump-replacements): New definition. + (preview-cache-preamble): Define preview-output-dir. + (TeX-inline-preview-internal): Define preview-output-dir, call + preview-do-replacements when not caching preamble. + 2008-05-10 Reiner Steib * preview.el (preview-auto-cache-preamble): Fix markup in in doc Index: preview/preview.el =================================================================== RCS file: /sources/auctex/auctex/preview/preview.el,v retrieving revision 1.283 diff -u -u -p -r1.283 preview.el --- preview/preview.el 10 May 2008 20:16:06 -0000 1.283 +++ preview/preview.el 30 Oct 2008 13:38:29 -0000 @@ -523,7 +523,7 @@ an explicit list of elements in the CDR, be consulted recursively.") (defcustom preview-dvipng-command - "dvipng -picky -noghostscript %d -o \"%m/prev%%03d.png\"" + "dvipng -picky -noghostscript %M/%d -o \"%m/prev%%03d.png\"" "*Command used for converting to separate PNG images. You might specify options for converting to other image types, @@ -543,19 +543,19 @@ if you customize this." (symbol :tag "Other" :value png))) (defcustom preview-dvips-command - "dvips -Pwww -i -E %d -o %m/preview.000" + "dvips -Pwww -i -E %M/%d -o %m/preview.000" "*Command used for converting to separate EPS images." :group 'preview-latex :type 'string) (defcustom preview-fast-dvips-command - "dvips -Pwww %d -o %m/preview.ps" + "dvips -Pwww %M/%d -o %m/preview.ps" "*Command used for converting to a single PS file." :group 'preview-latex :type 'string) (defcustom preview-pdf2dsc-command - "pdf2dsc %s.pdf %m/preview.dsc" + "pdf2dsc %M/%s.pdf %m/preview.dsc" "*Command used for generating dsc from a PDF file." :group 'preview-latex :type 'string) @@ -861,7 +861,8 @@ Pure borderless black-on-white will retu (delete-file (let ((gsfile preview-gs-file)) (with-current-buffer TeX-command-buffer - (funcall (car gsfile) "dvi")))) + (concat (preview-create-prv-directory) "/" + (funcall (car gsfile) "dvi"))))) (file-error nil)) (when preview-ps-file (condition-case nil @@ -885,7 +886,8 @@ The usual PROCESS and COMMAND arguments (condition-case nil (delete-file (with-current-buffer TeX-command-buffer - (funcall (car gsfile) "dvi"))) + (concat (preview-create-prv-directory) "/" + (funcall (car gsfile) "dvi")))) (file-error nil)) (if preview-ps-file (preview-prepare-fast-conversion)) @@ -1931,7 +1933,8 @@ Deletes the dvi file when finished." (let ((gsfile preview-gs-file)) (delete-file (with-current-buffer TeX-command-buffer - (funcall (car gsfile) "dvi")))) + (concat (preview-create-prv-directory) "/" + (funcall (car gsfile) "dvi"))))) (file-error nil))))) (defun preview-active-string (ov) @@ -2212,7 +2215,7 @@ list of LaTeX commands is inserted just :group 'preview-latex :type preview-expandable-string) -(defcustom preview-LaTeX-command '("%`%l \"\\nonstopmode\\nofiles\ +(defcustom preview-LaTeX-command '("%`%l \"\\nonstopmode\ \\PassOptionsToPackage{" ("," . preview-required-option-list) "}{preview}\ \\AtBeginDocument{\\ifx\\ifPreview\\undefined" preview-default-preamble "\\fi}\"%' %t") @@ -2537,6 +2540,17 @@ might be needed for colloborative work o (directory-files topdir t "\\`tmp" t) (file-error nil)))) +(defun preview-create-prv-directory () + "If necessary, generate a top directory similar to that in +`preview-create-subdirectory', then return the name of the +created directory relative to the master directory, in +shell-quoted form." + (let ((topdir (expand-file-name (TeX-master-file "prv")))) + (unless (file-directory-p topdir) + (make-directory topdir)) + (add-hook 'kill-emacs-hook #'preview-cleanout-tempfiles t) + (shell-quote-argument (file-name-nondirectory topdir)))) + (defun preview-create-subdirectory () "Create a temporary subdir for the current TeX process. If necessary, generates a fitting top @@ -2548,7 +2562,7 @@ set to the corresponding TEMPDIR descrip in `preview-make-filename'. The directory is registered in `preview-temp-dirs' in order not to be cleaned out later while in use." - (let ((topdir (expand-file-name (TeX-active-master "prv")))) + (let ((topdir (expand-file-name (TeX-master-file "prv")))) (if (file-directory-p topdir) (unless (member topdir preview-temp-dirs) ;; Cleans out the top preview directory by @@ -3091,18 +3105,19 @@ If FAST is set, do a fast conversion." (defun preview-start-pdf2dsc () "Start a PDF2DSC process." (let* ((file preview-gs-file) - tempdir + tempdir tempprvdir pdfsource (command (with-current-buffer TeX-command-buffer (prog1 (TeX-command-expand preview-pdf2dsc-command (car file)) (setq tempdir TeX-active-tempdir + tempprvdir (preview-create-prv-directory) pdfsource (TeX-master-file "pdf"))))) (name "Preview-PDF2DSC")) (setq TeX-active-tempdir tempdir) (setq preview-ps-file (preview-attach-filename - pdfsource + (concat tempprvdir "/" pdfsource) (preview-make-filename (preview-make-filename "preview.dsc" tempdir) tempdir))) @@ -3222,22 +3237,33 @@ This is passed through `preview-do-repla (string :tag "non-literal regexp replacement"))))))) (defvar preview-format-name) +(defvar preview-output-dir) (defcustom preview-dump-replacements '(preview-LaTeX-command-replacements - ("\\`\\([^ ]+\\)\ + ("\\`\\([^ ]+\\)\\( +-output-directory=[^ ]+\\.prv\\|\\)\ \\(\\( +-\\([^ \\\\\"]\\|\\\\\\.\\|\"[^\"]*\"\\)*\\)*\\)\\(.*\\)\\'" - . ("\\1 -ini -interaction=nonstopmode \"&\\1\" " preview-format-name ".ini \\5"))) + . ("\\1 -output-directory=" preview-output-dir " -ini -interaction=nonstopmode \"&\\1\" " preview-format-name ".ini \\6"))) "Generate a dump command from the usual preview command." :group 'preview-latex :type '(repeat (choice (symbol :tag "Named replacement") (cons string (repeat (choice symbol string)))))) +(defcustom preview-nodump-replacements + '(("\\`\\([^ ]+\\)\ +\\(.*\\)\\'" + . ("\\1 -output-directory=" preview-output-dir " \\2"))) + "Just add the output directory to the usual preview command." + :group 'preview-latex + :type '(repeat + (choice (symbol :tag "Named replacement") + (cons string (repeat (choice symbol string)))))) + (defcustom preview-undump-replacements '(("\\`\\([^ ]+\\)\ .*? \"\\\\input\" \\(.*\\)\\'" - . ("\\1 -interaction=nonstopmode \"&" preview-format-name "\" \\2"))) + . ("\\1 -interaction=nonstopmode -output-directory=" preview-output-dir " \"&" preview-output-dir "/" preview-format-name "\" \\2"))) "Use a dumped format for reading preamble." :group 'preview-latex :type '(repeat @@ -3259,6 +3285,7 @@ If FORMAT-CONS is non-nil, a previous fo (expand-file-name (preview-dump-file-name (TeX-master-file "ini")))) (master (TeX-master-file)) (format-name (expand-file-name master)) + (preview-output-dir (preview-create-prv-directory)) (preview-format-name (shell-quote-argument (preview-dump-file-name (file-name-nondirectory master)))) @@ -3471,13 +3498,15 @@ internal parameters, STR may be a log to ((preview-format-name (shell-quote-argument (preview-dump-file-name (file-name-nondirectory master)))) + (preview-output-dir (preview-create-prv-directory)) (process (TeX-run-command "Preview-LaTeX" (if (consp (cdr dumped-cons)) (preview-do-replacements command preview-undump-replacements) - command) file))) + (preview-do-replacements + command preview-nodump-replacements)) file))) (condition-case err (progn (when str Index: preview/latex/preview.dtx =================================================================== RCS file: /sources/auctex/auctex/preview/latex/preview.dtx,v retrieving revision 1.124 diff -u -u -p -r1.124 preview.dtx --- preview/latex/preview.dtx 3 Feb 2008 14:53:31 -0000 1.124 +++ preview/latex/preview.dtx 30 Oct 2008 13:38:29 -0000 @@ -20,7 +20,7 @@ % Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, % Boston, MA 02110-1301 USA % \fi -% \CheckSum{1664} +% \CheckSum{1748} % \GetFileInfo{preview.sty} % \date{\filedate} % \author{David address@hidden @@ -1305,17 +1305,57 @@ Please complain to your document class a % long as the document has not started, but after that we need the % error message mechanism operative. % -% The |\nofiles| command here tries to avoid clobbering input files -% used for references and similar. It will come too late if you call -% the package with \cmd{\AtBeginDocument}, so you'll need to issue -% |\nofiles| yourself in that case. Previously, this was done -% unconditionally in the main style file, but since we don't know what -% the package may be used for, this was inappropriate. -% % So here is the contents of the |prauctex.def| file: % \begin{macrocode} %\ifPreview\else\expandafter\endinput\fi -%\nofiles +% \end{macrocode} +% This function will define the global macro |address@hidden| which will +% contain the argument |#1| with all slashes replaced with dashes. +% The macro |address@hidden| can safely be used in a |\write| or |\edef| +% command. +% \begin{macrocode} +%address@hidden@address@hidden +%address@hidden +% \else\if#1/address@hidden@argnoslash-}\else% +% address@hidden@argnoslash#1}\fi% +% address@hidden +% \end{macrocode} +% It would be nicer to wrap this with a |\let|, but because the +% argument needs to be used unmodified in some places and modified in +% others, it was copied here from |latex.ltx| and modified. The three +% changes include the line to define |address@hidden| and replacing |#1| +% with |address@hidden| in the two places where the .aux file is used. +% \begin{macrocode} +%address@hidden {% +% address@hidden +% \clearpage +% address@hidden +% address@hidden@address@hidden +% \fi +% address@hidden +% address@hidden +% address@hidden +% address@hidden +% address@hidden@a:address@hidden +% address@hidden@address@hidden +% \fi +% address@hidden +% address@hidden@partaux +% address@hidden +% address@hidden address@hidden +% address@hidden +% \fi +% address@hidden@{#1.tex}% +% \clearpage +% address@hidden +% address@hidden +% address@hidden +% \fi +% \else +% \deadcycles\z@ +% address@hidden@#1}% +% \fi +% address@hidden@mainaux} %address@hidden % \end{macrocode} % Ok, here comes creative error message formatting. It turns out a