auctex
[Top][All Lists]
Advanced

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

Re: How can I suppress "LaTeX: problems after [0] pages" message?


From: Arash Esbati
Subject: Re: How can I suppress "LaTeX: problems after [0] pages" message?
Date: Tue, 05 Jul 2022 21:48:09 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50

Alper Alimoglu <alper.alimoglu@gmail.com> writes:

> I am trying to compile a latex file (opened buffer) with the following
> command in order to suppress its compilation logs:

In general, this is a semi-good idea when you're using AUCTeX since it
runs the process in a buffer and then parses the log for the upcoming
course of action.

> Please also link in emacs.stackexchange:
> https://emacs.stackexchange.com/questions/72406/how-can-i-suppress-latex-problems-after-0-pages-message
>
> `pdflatex -shell-escape -interaction=batchmode current_buffer.tex`

If I save the example provided in the question above and run pdflatex on
it in the CLI, I get the following:

-> pdflatex -shell-escape -interaction=batchmode current_buffer.tex
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded 
format=pdflatex)
 \write18 enabled.
entering extended mode

So the compile-log provided there is off, somehow.

> I keep seeing following message in the minibuffer when a tex file is compiled:
>
> ```LaTeX: problems after [0] pages```
>
> I couldn't figure out why this error shows up even the tex file
> compiled successfully. Would it be possible to suppress this message?

In Emacs with AUCTeX, I did the following since I wanted it the easy
way.  This is my .tex file:

--8<---------------cut here---------------start------------->8---
\documentclass[border=0.2cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.symbols}
\begin{document}

\verb|M-x TeX-interactive-mode RET| before hitting \verb|C-c C-c|

\begin{tikzpicture}
  \node at (0,0) [forbidden sign,line width=2ex,draw=red,fill=white] {Smoking};
  \node [opacity=.5]
  at (2,0) [forbidden sign,line width=2ex,draw=red,fill=white] {Smoking};
\end{tikzpicture}
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% TeX-command-extra-options: "-shell-escape -interaction=batchmode"
%%% End:
--8<---------------cut here---------------end--------------->8---

Note that I enabled `TeX-interactive-mode.  When I hit 'C-c C-c', I get:

    LaTeX: problems after some pages

even if the file compiles successfully.  This is a short-coming in the
function `TeX-LaTeX-sentinel' which is not prepared for the short log
file.  Can you evaluate the following version and see if it helps?
Search for "LaTeX finished at" and that's the only change:

--8<---------------cut here---------------start------------->8---
(defun TeX-LaTeX-sentinel (process name)
  "Cleanup TeX output buffer after running LaTeX.

Parse the output buffer to collect errors and warnings if the
variable `TeX-parse-all-errors' is non-nil.

Open the error overview if
`TeX-error-overview-open-after-TeX-run' is non-nil and there are
errors or warnings to show."
  (if TeX-parse-all-errors
      (TeX-parse-all-errors))
  (if (and TeX-error-overview-open-after-TeX-run
           (TeX-error-overview-make-entries
            (TeX-master-directory) (TeX-active-buffer)))
      (TeX-error-overview))
  (cond ((TeX-TeX-sentinel-check process name))
        ((and (save-excursion
                (re-search-forward
                 "^Package biblatex Warning: Please (re)run Biber on the file"
                 nil t))
              (with-current-buffer TeX-command-buffer
                (and (LaTeX-bibliography-list)
                     (TeX-check-files (TeX-master-file "bbl")
                                      (TeX-style-list)
                                      (append TeX-file-extensions
                                              BibTeX-file-extensions
                                              TeX-Biber-file-extensions)))))
         (message "%s%s" "You should run Biber to get citations right, "
                  (TeX-current-pages))
         (setq TeX-command-next (with-current-buffer TeX-command-buffer
                                  TeX-command-Biber)))
        ((and (save-excursion
                (re-search-forward
                 "^\\(?:LaTeX\\|Package natbib\\) Warning: Citation" nil t))
              (with-current-buffer TeX-command-buffer
                (and (LaTeX-bibliography-list)
                     (TeX-check-files (TeX-master-file "bbl")
                                      (TeX-style-list)
                                      (append TeX-file-extensions
                                              BibTeX-file-extensions
                                              TeX-Biber-file-extensions)))))
         (message "%s%s" "You should run BibTeX to get citations right, "
                  (TeX-current-pages))
         (setq TeX-command-next (with-current-buffer TeX-command-buffer
                                  TeX-command-BibTeX)))
        ((re-search-forward "Package biblatex Warning: Please rerun LaTeX" nil 
t)
         (message "%s%s" "You should run LaTeX again, " (TeX-current-pages))
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "^(biblatex)\\W+Page breaks have changed" nil t)
         (message "%s%s" "You should run LaTeX again - page breaks have 
changed, "
                  (TeX-current-pages))
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "^\\(?:LaTeX Warning: Label(s)\\|\
Package natbib Warning: Citation(s)\\)" nil t)
         (message "%s%s" "You should run LaTeX again to get references right, "
                  (TeX-current-pages))
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward
          "^\\(?:(rerunfilecheck)\\|Package hyperref Warning:\\)\\W+\
Rerun to get outlines right" nil t)
         (message "%s%s" "You should run LaTeX again to get outlines right, "
                  (TeX-current-pages))
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "^LaTeX Warning: Reference" nil t)
         (message "%s%s%s" name ": there were unresolved references, "
                  (TeX-current-pages))
         (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))
         (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 "^No file .*\\.\\(toc\\|lof\\|lot\\)\\.$" nil t)
         (message "%s" (concat "You should run LaTeX again to get "
                               (upcase (match-string-no-properties 1))
                               " right"))
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "Package longtable Warning: Table widths have \
changed\\. Rerun LaTeX\\." nil t)
         (message
          "%s" "You should run LaTeX again to get table formatting right")
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "^hf-TikZ Warning: Mark '.*' changed\\. \
Rerun to get mark in right position\\." nil t)
         (message
          "%s" "You should run LaTeX again to get TikZ marks in right position")
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward "^\\* xsim warning: \"rerun\"" nil t)
         (message
          "%s" "You should run LaTeX again to synchronize exercise properties")
         (setq TeX-command-next TeX-command-default))
        ((re-search-forward
          "^\\(\\*\\* \\)?J?I?p?\\(La\\|Sli\\)TeX\\(2e\\)? \
\\(Version\\|ver\\.\\|<[0-9/-]*\\(?:u[^>]*\\)?>\\)\
\\|^LaTeX finished at"
          nil t)
         (let* ((warnings (and TeX-debug-warnings
                               (TeX-LaTeX-sentinel-has-warnings)))
                (bad-boxes (and TeX-debug-bad-boxes
                                (TeX-LaTeX-sentinel-has-bad-boxes)))
                (add-info (when (or warnings bad-boxes)
                            (concat " (with "
                                    (when warnings "warnings")
                                    (when (and warnings bad-boxes) " and ")
                                    (when bad-boxes "bad boxes")
                                    ")"))))
           (message "%s" (concat name ": successfully formatted "
                                 (TeX-current-pages) add-info)))
         (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)))

  ;; Check whether the idx file changed.
  (let (idx-file)
    (and (file-exists-p
          (setq idx-file
                (with-current-buffer TeX-command-buffer
                  (expand-file-name (TeX-active-master "idx")))))
         ;; imakeidx package automatically runs makeindex, thus, we need to be
         ;; sure .ind file isn't newer than .idx.
         (TeX-check-files (with-current-buffer TeX-command-buffer
                            (expand-file-name (TeX-active-master "ind")))
                          (with-current-buffer TeX-command-buffer
                            (list (file-name-nondirectory (TeX-active-master))))
                          '("idx"))
         (with-temp-buffer
           (insert-file-contents-literally idx-file)
           (not (equal
                 ;; Compare old md5 hash of the idx file with the new one.
                 (cdr (assoc idx-file LaTeX-idx-md5-alist))
                 (md5 (current-buffer)))))
         (push (cons idx-file t) LaTeX-idx-changed-alist)))

  (unless (TeX-error-report-has-errors-p)
    (run-hook-with-args 'TeX-after-compilation-finished-functions
                        (with-current-buffer TeX-command-buffer
                          (expand-file-name
                           (TeX-active-master (TeX-output-extension)))))))
--8<---------------cut here---------------end--------------->8---

Best, Arash



reply via email to

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