auctex-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[AUCTeX-diffs] GNU AUCTeX branch, master, updated. adf998c2ce482c62d15d2


From: Mosè Giordano
Subject: [AUCTeX-diffs] GNU AUCTeX branch, master, updated. adf998c2ce482c62d15d2f72dac9097ca27edc55
Date: Sat, 16 Apr 2016 17:34:33 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU AUCTeX".

The branch, master has been updated
       via  adf998c2ce482c62d15d2f72dac9097ca27edc55 (commit)
      from  4f9666b59249c49412cc51a4491440d85d24127e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit adf998c2ce482c62d15d2f72dac9097ca27edc55
Author: Mosè Giordano <address@hidden>
Date:   Sat Apr 16 19:14:29 2016 +0200

    Replace TeX-PDF-via-dvips-ps2pdf with TeX-PDF-from-DVI
    
    * tex.el (TeX-command-list): Add Dvipdfmx.
    (TeX-expand-list-builtin): Use `TeX-PDF-from-DVI' in place of
    `TeX-PDF-via-dvips-ps2pdf'.
    (TeX-PDF-from-DVI): New safe buffer-local and customizable variable.
    (TeX-PDF-via-dvips-ps2pdf): Mark as obsolete.
    (TeX-toggle-PDF-via-dvips-ps2pdf): Remove function.
    (TeX-PDF-from-DVI): New function.
    (TeX-mode-specific-command-menu-entries): Update menu to convert DVI to
    PDF.
    * tex-buf.el (TeX-command-default, TeX-run-set-command,
    TeX-TeX-sentinel, TeX-TeX-sentinel-check, TeX-LaTeX-sentinel,
    TeX-dvips-sentinel, TeX-ps2pdf-sentinel): Use `TeX-PDF-from-DVI' in
    place of `TeX-PDF-via-dvips-ps2pdf'.
    (TeX-run-dvipdfmx, TeX-dvipdfmx-sentinel): New function.
    ():
    * doc/auctex.texi (Processor Options): Document `TeX-PDF-from-DVI' and
      remove mentions to `TeX-PDF-via-dvips-ps2pdf'
    * doc/changes.texi: Mention `TeX-PDF-from-DVI'.

diff --git a/doc/auctex.texi b/doc/auctex.texi
index 620076a..cdcb0ac 100644
--- a/doc/auctex.texi
+++ b/doc/auctex.texi
@@ -2926,23 +2926,41 @@ the document into @acronym{DVI} output.  Thus, if you 
want a
 @acronym{PDF} document in the end you can either use address@hidden engine,
 see below for information about how to set engines, or compile the
 document with @command{tex} and then convert to @acronym{PDF} with
address@hidden@command{ps2pdf} before viewing it.  The latter can be
-done automatically in @AUCTeX{} by setting the
address@hidden variable to a non-nil value.
-
address@hidden TeX-PDF-via-dvips-ps2pdf
-With @code{TeX-PDF-mode} set to non-nil, if
address@hidden is non-nil too, the document is compiled
-with @command{tex} (or @command{latex}) instead of @command{pdftex} (or
address@hidden).  When the document is ready, @kbd{C-c C-c} will
-suggest to run @command{dvips} and then @command{ps2pdf} in order to
-convert the @acronym{DVI} file to @acronym{PDF}.  When the @acronym{PDF}
-file is finally ready, the next suggested command will be to open the
-viewer.
address@hidden@command{ps2pdf} before viewing it.  In addition, most
+documents written in Japanese are compiled with @command{tex} or
address@hidden (not their @command{pdf} variants) and then converted to
address@hidden with @command{dvipdfmx}.  You can use the
address@hidden variable to let @AUCTeX{} know you want to
+generate the final @acronym{PDF} by converting a @acronym{DVI} file.
+
address@hidden TeX-PDF-from-DVI
+This option controls if and how to produce a @acronym{PDF} file by
+converting a @acronym{DVI} file.
+
+When @code{TeX-PDF-mode} is non-nil, if @code{TeX-PDF-from-DVI} is
+non-nil too the document is compiled with @command{tex} (or
address@hidden) instead of @command{pdftex} (or @command{pdflatex}).
+When the document is ready, @kbd{C-c C-c} will suggest to run the
+command indicated by @code{TeX-PDF-from-DVI}.
+
+If non-nil, @code{TeX-PDF-from-DVI} should be the name of the command,
+as a string, used to convert the @acronym{DVI} file to @acronym{PDF} or
+to an intermediate type.  Values currently supported are:
address@hidden
address@hidden
address@hidden"Dvips"}: the @acronym{DVI} file is converted to @acronym{PS} with
address@hidden  After successfully running it, @command{ps2pdf} will
+be the default command to convert the @acronym{PS} file to
address@hidden
address@hidden
address@hidden"Dvipdfmx"}: the @acronym{DVI} file is converted to @acronym{PDF}
+with @command{dvipdfmx}.
address@hidden itemize
+When the @acronym{PDF} file is finally ready, the next suggested command
+will be to open the viewer.
 
 This option can also be set as a file local variable, in order to use
-the sequence @address@hidden@command{ps2pdf} on a
-per-document basis.
+this conversion on a per-document basis.
 
 Recall the whole sequence of @kbd{C-c C-c} commands can be replace by
 the single @kbd{C-c C-a}.
diff --git a/doc/changes.texi b/doc/changes.texi
index 9d36f09..d819cc0 100644
--- a/doc/changes.texi
+++ b/doc/changes.texi
@@ -35,13 +35,22 @@ after compilation of the document.
 @end ifclear
 
 @item
-Added support for Atril viewer.  Forward and inverse search requires
-version 1.9.1 or later to work.
+A new option, @code{TeX-PDF-from-DVI}, controls if and how to produce a
address@hidden file by converting a @acronym{DVI} file.  This supersedes
address@hidden which is still recognized but marked as
+obsolete and may be removed in future releases.
 
 @item
-Added support for dviout viewer on Windows.  Note that this setup works
-when @code{TeX-source-correlate-method} is set to use
address@hidden for @acronym{DVI}, e.g.:
+Support for a number of external viewers has been addedd:
address@hidden
address@hidden
+Atril viewer.  Forward and inverse search requires version 1.9.1 or
+later to work.
+
address@hidden
+dviout viewer on Windows.  Note that this setup works when
address@hidden is set to use @samp{source-specials}
+for @acronym{DVI}, e.g.:
 @lisp
 (setq TeX-source-correlate-method
       '((dvi . source-specials)
@@ -50,11 +59,12 @@ when @code{TeX-source-correlate-method} is set to use
 which is the default.
 
 @item
-Added support for SumatraPDF viewer on Windows.
+SumatraPDF viewer on Windows.
 
 @item
-Added support for Zathura viewer.  Forward and inverse search requires a
-recent version of the program to work (3.4 or later).
+Zathura viewer.  Forward and inverse search requires a recent version of
+the program to work (3.4 or later).
address@hidden itemize
 
 @item
 A new function, @code{TeX-documentation-texdoc}, for reading
diff --git a/tex-buf.el b/tex-buf.el
index c9cda7d..f3a83d2 100644
--- a/tex-buf.el
+++ b/tex-buf.el
@@ -786,7 +786,7 @@ omitted) and `TeX-region-file'."
           ;; We should check for bst files here as well.
           (if LaTeX-using-Biber TeX-command-Biber TeX-command-BibTeX))
          ((and
-           ;; Rational: makeindex should be run when final document is almost
+           ;; Rationale: makeindex should be run when final document is almost
            ;; complete (see
            ;; 
http://tex.blogoverflow.com/2012/09/dont-forget-to-run-makeindex/),
            ;; otherwise, after following latex runs, index pages may change due
@@ -797,10 +797,9 @@ omitted) and `TeX-region-file'."
                   (TeX-process-get-variable
                    name
                    'TeX-command-next
-                   (if (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode)
-                       "Dvips"
-                     TeX-command-Show)))
-            (list "Dvips" TeX-command-Show))
+                   (or (and TeX-PDF-mode (TeX-PDF-from-DVI))
+                       TeX-command-Show)))
+            (list "Dvips" "Dvipdfmx" TeX-command-Show))
            (cdr (assoc (expand-file-name (concat name ".idx"))
                        LaTeX-idx-changed-alist)))
           "Index")
@@ -1009,7 +1008,7 @@ Return the new process."
   "Remember TeX command to use to NAME and set corresponding output extension."
   (setq TeX-command-default name
        TeX-output-extension
-       (if (and (null TeX-PDF-via-dvips-ps2pdf) TeX-PDF-mode) "pdf" "dvi"))
+       (if (and (null (TeX-PDF-from-DVI)) TeX-PDF-mode) "pdf" "dvi"))
   (let ((case-fold-search t)
        (lst TeX-command-output-list))
     (while lst
@@ -1121,6 +1120,14 @@ run of `TeX-run-TeX', use
         process
       (TeX-synchronous-sentinel name file process))))
 
+(defun TeX-run-dvipdfmx (name command file)
+  "Create a process for NAME using COMMAND to convert FILE with dvipdfmx."
+  (let ((process (TeX-run-command name command file)))
+    (setq TeX-sentinel-function #'TeX-dvipdfmx-sentinel)
+    (if TeX-process-asynchronous
+        process
+      (TeX-synchronous-sentinel name file process))))
+
 (defun TeX-run-ps2pdf (name command file)
   "Create a process for NAME using COMMAND to convert FILE with ps2pdf."
   (let ((process (TeX-run-command name command file)))
@@ -1363,10 +1370,11 @@ errors or warnings to show."
                  (TeX-master-directory)))
            (TeX-error-overview)))
     (message (concat name ": formatted " (TeX-current-pages)))
-    (if (with-current-buffer TeX-command-buffer
-         (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
-       (setq TeX-command-next "Dvips")
-      (setq TeX-command-next TeX-command-Show))))
+    (let (dvi2pdf)
+       (if (with-current-buffer TeX-command-buffer
+          (and TeX-PDF-mode (setq dvi2pdf (TeX-PDF-from-DVI))))
+        (setq TeX-command-next dvi2pdf)
+       (setq TeX-command-next TeX-command-Show)))))
 
 (defun TeX-current-pages ()
   "Return string indicating the number of pages formatted."
@@ -1423,10 +1431,11 @@ Return nil ifs no errors were found."
                                            'TeX-current-master))
                         t))
        t)
-    (if (with-current-buffer TeX-command-buffer
-         (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
-       (setq TeX-command-next "Dvips")
-      (setq TeX-command-next TeX-command-Show))
+    (let (dvi2pdf)
+       (if (with-current-buffer TeX-command-buffer
+          (and TeX-PDF-mode (setq dvi2pdf (TeX-PDF-from-DVI))))
+        (setq TeX-command-next dvi2pdf)
+       (setq TeX-command-next TeX-command-Show)))
     nil))
 
 ;; This regexp should catch warnings of the type
@@ -1518,18 +1527,20 @@ Rerun to get outlines right" nil t)
        ((re-search-forward "^LaTeX Warning: Reference" nil t)
         (message "%s%s%s" name ": there were unresolved references, "
                  (TeX-current-pages))
-        (if (with-current-buffer TeX-command-buffer
-              (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
-            (setq TeX-command-next "Dvips")
-          (setq TeX-command-next TeX-command-Show)))
+        (let (dvi2pdf)
+          (if (with-current-buffer TeX-command-buffer
+                (and TeX-PDF-mode (setq dvi2pdf (TeX-PDF-from-DVI))))
+              (setq TeX-command-next dvi2pdf)
+            (setq TeX-command-next TeX-command-Show))))
        ((re-search-forward "^\\(?:LaTeX Warning: Citation\\|\
 Package natbib Warning:.*undefined citations\\)" nil t)
         (message "%s%s%s" name ": there were unresolved citations, "
                  (TeX-current-pages))
-        (if (with-current-buffer TeX-command-buffer
-              (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
-            (setq TeX-command-next "Dvips")
-          (setq TeX-command-next TeX-command-Show)))
+        (let (dvi2pdf)
+          (if (with-current-buffer TeX-command-buffer
+                (and TeX-PDF-mode (setq dvi2pdf (TeX-PDF-from-DVI))))
+              (setq TeX-command-next dvi2pdf)
+            (setq TeX-command-next TeX-command-Show))))
        ((re-search-forward "Package longtable Warning: Table widths have \
 changed\\. Rerun LaTeX\\." nil t)
         (message
@@ -1555,10 +1566,11 @@ Rerun to get mark in right position\\." nil t)
                                    ")"))))
           (message "%s" (concat name ": successfully formatted "
                                 (TeX-current-pages) add-info)))
-        (if (with-current-buffer TeX-command-buffer
-              (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
-            (setq TeX-command-next "Dvips")
-          (setq TeX-command-next TeX-command-Show)))
+        (let (dvi2pdf)
+          (if (with-current-buffer TeX-command-buffer
+                (and TeX-PDF-mode (setq dvi2pdf (TeX-PDF-from-DVI))))
+              (setq TeX-command-next dvi2pdf)
+            (setq TeX-command-next TeX-command-Show))))
        (t
         (message "%s%s%s" name ": problems after " (TeX-current-pages))
         (setq TeX-command-next TeX-command-default)))
@@ -1643,11 +1655,26 @@ Rerun to get mark in right position\\." nil t)
               "\\<TeX-mode-map>\\[TeX-recenter-output-buffer]")))
    (t
     (if (with-current-buffer TeX-command-buffer
-         (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
+         (and (equal (TeX-PDF-from-DVI) "Dvips") TeX-PDF-mode))
        (setq TeX-output-extension "ps"
              TeX-command-next "Ps2pdf"))
     (message "Dvips finished successfully. "))))
 
+(defun TeX-dvipdfmx-sentinel (_process _name)
+  "Cleanup TeX output buffer after running dvipdfmx."
+  (goto-char (point-max))
+  (cond
+   ((search-backward "TeX Output exited abnormally" nil t)
+    (message "Dvipdfmx failed.  Type `%s' to display output."
+            (substitute-command-keys
+              "\\<TeX-mode-map>\\[TeX-recenter-output-buffer]")))
+   (t
+    (if (with-current-buffer TeX-command-buffer
+         (and (equal (TeX-PDF-from-DVI) "Dvipdfmx") TeX-PDF-mode))
+       (setq TeX-output-extension "pdf"
+             TeX-command-next TeX-command-Show))
+    (message "Dvipdfmx finished successfully. "))))
+
 (defun TeX-ps2pdf-sentinel (_process _name)
   "Cleanup TeX output buffer after running ps2pdf."
   (goto-char (point-max))
@@ -1658,7 +1685,7 @@ Rerun to get mark in right position\\." nil t)
               "\\<TeX-mode-map>\\[TeX-recenter-output-buffer]")))
    (t
     (if (with-current-buffer TeX-command-buffer
-         (and TeX-PDF-via-dvips-ps2pdf TeX-PDF-mode))
+         (and (equal (TeX-PDF-from-DVI) "Dvips") TeX-PDF-mode))
        (setq TeX-command-next TeX-command-Show
              TeX-output-extension "pdf"))
     (message "ps2pdf finished successfully. "))))
diff --git a/tex.el b/tex.el
index cf9faae..43a70fa 100644
--- a/tex.el
+++ b/tex.el
@@ -151,6 +151,8 @@ If nil, none is specified."
      :help "Generate PostScript file")
     ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil t
      :help "Convert DVI file to PostScript")
+    ("Dvipdfmx" "dvipdfmx %d" TeX-run-dvipdfmx nil t
+     :help "Convert DVI file to PDF with dvipdfmx")
     ("Ps2pdf" "ps2pdf %f" TeX-run-ps2pdf nil t
      :help "Convert PostScript file to PDF")
     ("Index" "makeindex %s" TeX-run-index nil t
@@ -447,7 +449,7 @@ string."
     ("%(PDF)" (lambda ()
                (if (and (eq TeX-engine 'default)
                         (if TeX-PDF-mode
-                            (not TeX-PDF-via-dvips-ps2pdf)
+                            (not (TeX-PDF-from-DVI))
                           TeX-DVI-via-PDFTeX))
                    "pdf"
                  "")))
@@ -2123,19 +2125,52 @@ already established, don't do anything."
   :group 'TeX-command
   :type 'boolean)
 
+(defcustom TeX-PDF-from-DVI nil
+  "Specify if and how to produce PDF output from a DVI file.
+
+If non-nil, the default compiler produces DVI output.  The value
+should be the name of the command used to convert the DVI file to
+PDF or to an intermediate type.
+
+Possible values are
+
+* \"Dvips\": the DVI file is converted to PS with dvips.  After
+  successfully running it, ps2pdf will be the default command to
+  convert the PS file to PDF
+* \"Dvipdfmx\": the PDF is produced with dvipdfmx
+
+Programs should not use this variable directly but the function
+`TeX-PDF-from-DVI' which handles now obsolete variable
+`TeX-PDF-via-dvips-ps2pdf'."
+  :group 'TeX-command
+  :type '(choice
+         (const :tag "No DVI to PDF conversion" nil)
+         (const :tag "dvips - ps2pdf sequence" "Dvips")
+         (const :tag "dvipdfmx" "Dvipdfmx")))
+;; If you plan to support new values of `TeX-PDF-from-DVI' remember to update
+;; `TeX-command-default' accordingly.
+(make-variable-buffer-local 'TeX-PDF-from-DVI)
+(put 'TeX-PDF-from-DVI 'safe-local-variable
+     (lambda (x) (or (stringp x) (null x))))
+
 (defcustom TeX-PDF-via-dvips-ps2pdf nil
   "Whether to produce PDF output through the (La)TeX - dvips - ps2pdf 
sequence."
   :group 'TeX-command
   :type 'boolean)
 (make-variable-buffer-local 'TeX-PDF-via-dvips-ps2pdf)
-(put 'TeX-PDF-via-dvips-ps2pdf 'safe-local-variable 'booleanp)
+(put 'TeX-PDF-via-dvips-ps2pdf 'safe-local-variable 'TeX-booleanp)
+(make-obsolete-variable 'TeX-PDF-via-dvips-ps2pdf 'TeX-PDF-from-DVI "11.90")
 
-(defun TeX-toggle-PDF-via-dvips-ps2pdf ()
-  "Toggle `TeX-PDF-via-dvips-ps2pdf'."
-  (interactive)
-  (setq TeX-PDF-via-dvips-ps2pdf (not TeX-PDF-via-dvips-ps2pdf))
-  (message (concat "TeX-PDF-via-dvips-ps2pdf: "
-                  (if TeX-PDF-via-dvips-ps2pdf "on" "off"))))
+(defun TeX-PDF-from-DVI ()
+  "Return the value of variable `TeX-PDF-from-DVI'.
+
+If `TeX-PDF-from-DVI' is not set and obsolete option
+`TeX-PDF-via-dvips-ps2pdf' is non-nil, return \"dvips-ps2pdf\"
+for backward compatibility."
+  (cond
+   (TeX-PDF-from-DVI)
+   (TeX-PDF-via-dvips-ps2pdf
+    "Dvips")))
 
 (define-minor-mode TeX-interactive-mode
   "Minor mode for interactive runs of TeX."
@@ -4960,10 +4995,21 @@ Brace insertion is only done if point is in a math 
construct and
         :style toggle :selected TeX-PDF-mode
         :active (not (eq TeX-engine 'omega))
         :help "Use PDFTeX to generate PDF instead of DVI"]
-       [ "PDF via dvips + ps2pdf" TeX-toggle-PDF-via-dvips-ps2pdf
-        :style toggle :selected TeX-PDF-via-dvips-ps2pdf
+       ( "PDF from DVI"
         :visible TeX-PDF-mode
-        :help "Compile with (La)TeX and convert to PDF with dvips + ps2pdf"]
+        :help "Compile to DVI with (La)TeX and convert to PDF"
+        [ "Compile directly to PDF"
+          (lambda () (interactive) (setq TeX-PDF-from-DVI nil))
+          :style radio :selected (null (TeX-PDF-from-DVI))
+          :help "Compile directly to PDF without intermediate conversions"]
+        [ "dvips + ps2pdf"
+          (lambda () (interactive) (setq TeX-PDF-from-DVI "Dvips"))
+          :style radio :selected (equal (TeX-PDF-from-DVI) "Dvips")
+          :help "Convert DVI to PDF with dvips + ps2pdf sequence"]
+        [ "dvipdfmx"
+          (lambda () (interactive) (setq TeX-PDF-from-DVI "Dvipdfmx"))
+          :style radio :selected (equal (TeX-PDF-from-DVI) "Dvipdfmx")
+          :help "Convert DVI to PDF with dvipdfmx"])
        [ "Run Interactively" TeX-interactive-mode
         :style toggle :selected TeX-interactive-mode :keys "C-c C-t C-i"
         :help "Stop on errors in a TeX run"]

-----------------------------------------------------------------------

Summary of changes:
 doc/auctex.texi  |   48 +++++++++++++++++++++----------
 doc/changes.texi |   26 +++++++++++-----
 tex-buf.el       |   83 +++++++++++++++++++++++++++++++++++------------------
 tex.el           |   68 +++++++++++++++++++++++++++++++++++++-------
 4 files changed, 163 insertions(+), 62 deletions(-)


hooks/post-receive
-- 
GNU AUCTeX



reply via email to

[Prev in Thread] Current Thread [Next in Thread]