Emacs latexmk function throws me into an empty buf

2019-01-18 23:21发布

问题:

This is a follow up to How do I bind latexmk to one key in Emacs and have it show errors if there are any.

I'm using a function in Emacs to compile LaTeX documents with latexmk but it does not behave exactly as I want. The function I use is one Jouni K. Seppänen came up with:

(defun run-latexmk ()
  (interactive)
  (let ((TeX-save-query nil)
        (TeX-process-asynchronous nil)
        (master-file (TeX-master-file)))
    (TeX-save-document "")
    (TeX-run-TeX "latexmk" "latexmk" master-file)
    (if (plist-get TeX-error-report-switches (intern master-file))
        (TeX-next-error t)
      (minibuffer-message "latexmk done"))))

(add-hook 'LaTeX-mode-hook
          (lambda () (local-set-key (kbd "C-0") #'run-latexmk)))

The main problem is that when I use the function (by pressing C-0) it sometimes throws me into an empty buffer called TeX Live 2011.

One way of reproducing this problem is by trying to compile the following (it does not matter that vc.tex does not exist):

\immediate\write18{sh ./vc}
\input{vc}
\documentclass{article}
\begin{document}
\end{document}

Another way of reproducing it is to try to compile the following:

\documentclass{article}
\newcommand{foo}{
\begin{document}
\end{document}

A minor (cosmetic) problem is that the height of the minibuffer sometimes expands from one line to two lines as run-latexmk and after it has run it pops back to one line height. I have had problems finding a simple example to reproduce this behavior (I've only reproduced it for very large documents).

I would like a solution for both problems. I'd also be interested in other ways for me to interact with latexmk in Emacs.


Here's the *... output* buffer from the last example (the one with missing closing curly bracket of \newcommand:

Running `latexmk' on `test' with ``latexmk''
Latexmk: This is Latexmk, John Collins, 10 October 2011, version: 4.27a.
**** Report bugs etc to John Collins <collins at phys.psu.edu>. ****
Rule 'pdflatex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'test.tex'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex -recorder -halt-on-error -interaction=nonstopmode -shell-escape -synctex=1  -recorder  "test.tex"'
------------
Latexmk: applying rule 'pdflatex'...
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
 \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian,
 icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or
iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji,
 lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol
ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven
ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded
.
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/size10.clo)))
Runaway argument?
{ \begin {document} \end {document} 
! File ended while scanning use of \@argdef.
<inserted text> 
                \par 
<*> test.tex

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on test.log.
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 256
Latexmk: Use the -f option to force complete processing.
Latexmk: Errors, so I did not complete making targets

latexmk exited at Thu Oct 27 08:11:07

The following is output from the TeX file that makes *TeX Help* show Emergency stop.:

Running `latexmk' on `laskurs_logik.hemtenta' with ``latexmk''
Latexmk: This is Latexmk, John Collins, 10 October 2011, version: 4.27a.
**** Report bugs etc to John Collins <collins at phys.psu.edu>. ****
Rule 'pdflatex': File changes, etc:
   Changed files, or newly in use since previous run(s):
      'laskurs_logik.hemtenta.tex'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex -recorder -halt-on-error -interaction=nonstopmode -shell-escape -synctex=1  -recorder  "laskurs_logik.hemtenta.tex"'
------------
Latexmk: All targets (laskurs_logik.anteckningar.pdf) are up-to-date
Latexmk: applying rule 'pdflatex'...
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
 \write18 enabled.
entering extended mode
(./laskurs_logik.hemtenta.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian,
 icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or
iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji,
 lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol
ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven
ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded
.
(/usr/local/texlive/2011/texmf-dist/tex/latex/nag/nag.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/nag/nag-l2tabu.cfg)
(/usr/local/texlive/2011/texmf-dist/tex/latex/nag/nag-orthodox.cfg))fatal: Not a git repository (or any parent up to mount parent /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
 (./vc.tex)
 (/usr/local/texlive/2011/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/leqno.clo)
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fleqn.clo)
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/inputenc.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/utf8.def
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.dfu)
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ot1enc.dfu)
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/omsenc.dfu)))
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fontenc.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/t1enc.def))
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/lmodern.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/fixltx2e.sty) (./strict.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/tools/verbatim.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/enumitem/enumitem.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te
x)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
(/usr/local/texlive/2011/texmf-dist/tex/latex/ms/everyshi.sty))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex))
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphicx.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/keyval.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/graphics.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/graphics/trig.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/graphics.cfg)
(/usr/local/texlive/2011/texmf-dist/tex/latex/pdftex-def/pdftex.def
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/infwarerr.sty)
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ltxcmds.sty))))
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c
ode.tex))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d
ef
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p
df.def)))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.
code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.
code.tex)) (/usr/local/texlive/2011/texmf-dist/tex/latex/xcolor/xcolor.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/color.cfg))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.
tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic
.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo
nometric.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando
m.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa
rison.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.
code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round
.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.
code.tex)))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex)
)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co
de.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst
ruct.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage
.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co
de.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst
ate.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform
ations.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod
e.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c
ode.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce
ssing.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co
de.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod
e.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod
e.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.
code.tex))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co
de.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare
ncy.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.
code.tex)))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod
e.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.
tex)
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version
-0-65.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version
-1-18.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)
) (/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod
e.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan
dlers.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod
e.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarytopaths.code.tex)))
(/usr/local/texlive/2011/texmf-dist/tex/latex/isomath/isomath.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/was/fixmath.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/kvoptions.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/etexcmds.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/ifluatex.sty)))))
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsfonts/amssymb.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsfonts/amsfonts.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/mh/mathtools.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/tools/calc.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/mh/mhsetup.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsmath.sty
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amstext.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsgen.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsbsy.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsmath/amsopn.sty)))
(/usr/local/texlive/2011/texmf-dist/tex/latex/onlyamsmath/onlyamsmath.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/tools/bm.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/turnstile/turnstile.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/ifthen.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/jknapltx/mathrsfs.sty)
(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/english.ldf
(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/babel.def))
(/usr/local/texlive/2011/texmf-dist/tex/generic/babel/swedish.ldf))
(/usr/local/texlive/2011/texmf-dist/tex/latex/microtype/microtype.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/microtype/microtype.cfg))
(/usr/local/texlive/2011/texmf-dist/tex/latex/csquotes/csquotes.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/etoolbox/etoolbox.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/etex-pkg/etex.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/csquotes/csquotes.def)
(/usr/local/texlive/2011/texmf-dist/tex/latex/csquotes/csquotes.cfg))
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/biblatex.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/logreq/logreq.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/logreq/logreq.def))
(/usr/local/texlive/2011/texmf-dist/tex/latex/url/url.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/blx-compat.def)
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/biblatex.def)
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/bbx/authoryear-comp.bbx
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/bbx/authoryear.bbx
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/bbx/standard.bbx)))
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/cbx/authoryear-comp.cbx)
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/biblatex.cfg))
(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hyperref.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty))
(/usr/local/texlive/2011/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/pd1enc.def)
(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/hyperref.cfg))

Package hyperref Message: Driver (autodetected): hpdftex.

(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/hpdftex.def
(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty))
(/usr/local/texlive/2011/texmf-dist/tex/latex/ellipsis/ellipsis.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/tools/xspace.sty))
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarycalc.code.tex)
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibraryshapes.misc.code.tex
(/usr/local/texlive/2011/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibrary
shapes.misc.code.tex))
(/usr/local/texlive/2011/texmf-dist/tex/latex/biblatex/lbx/swedish.lbx)
(./laskurs_logik.hemtenta.aux)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/t1lmr.fd)
ABD: EveryShipout initializing macros
(/usr/local/texlive/2011/texmf-dist/tex/context/base/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
(/usr/local/texlive/2011/texmf-dist/tex/latex/oberdiek/grfext.sty)
(/usr/local/texlive/2011/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
(/usr/local/texlive/2011/texmf-dist/tex/latex/microtype/mt-cmr.cfg)
(./laskurs_logik.hemtenta.bbl)
(/usr/local/texlive/2011/texmf-dist/tex/latex/hyperref/nameref.sty
(/usr/local/texlive/2011/texmf-dist/tex/generic/oberdiek/gettitlestring.sty))
(./laskurs_logik.hemtenta.out) (./laskurs_logik.hemtenta.out)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/ot1lmr.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/omllmm.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/omslmsy.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/omxlmex.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsfonts/umsa.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/microtype/mt-msa.cfg)
(/usr/local/texlive/2011/texmf-dist/tex/latex/amsfonts/umsb.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/microtype/mt-msb.cfg)
(/usr/local/texlive/2011/texmf-dist/tex/latex/jknapltx/ursfs.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/pxfonts/upxsyc.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/omslmr.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/lm/t1lmtt.fd)

Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citeauthor' on input line 127.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citetitle' on input line 127.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citeauthor' on input line 143.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citetitle' on input line 143.

[1{/usr/local/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
[2pdfTeX warning (ext4): destination with the same identifier (name{equation.0.
1}) has been already used, duplicate ignored

\@EveryShipout@Output ...@Org@Shipout \box \@cclv 

l.170 
      ]pdfTeX warning (ext4): destination with the same identifier (name{equati
on.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.171 \begin{equation}
                      pdfTeX warning (ext4): destination with the same identifi
er (name{equation.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.178 \begin{equation}
                      pdfTeX warning (ext4): destination with the same identifi
er (name{equation.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.188 \begin{equation}
                       [3]pdfTeX warning (ext4): destination with the same iden
tifier (name{equation.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.194 \begin{equation}
                      pdfTeX warning (ext4): destination with the same identifi
er (name{equation.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.200 \begin{equation}
                      pdfTeX warning (ext4): destination with the same identifi
er (name{equation.0.1}) has been already used, duplicate ignored
<to be read again> 
                   \relax 
l.207 \begin{equation}


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citeauthor' on input line 220.


Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref)                removing `\citetitle' on input line 220.

[4]
No complaints by nag.
[5] (./laskurs_logik.hemtenta.aux) )
(see the transcript file for additional information){/usr/local/texlive/2011/te
xmf-dist/fonts/enc/dvips/lm/lm-ec.enc}{/usr/local/texlive/2011/texmf-dist/fonts
/enc/dvips/lm/lm-rm.enc}{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/lm/
lm-mathit.enc}{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/lm/lm-mathsy.
enc}</usr/local/texlive/2011/texmf-dist/fonts/type1/public/lm/lmbx12.pfb></usr/
local/texlive/2011/texmf-dist/fonts/type1/public/lm/lmbxi10.pfb></usr/local/tex
live/2011/texmf-dist/fonts/type1/public/lm/lmcsc10.pfb></usr/local/texlive/2011
/texmf-dist/fonts/type1/public/lm/lmmi12.pfb></usr/local/texlive/2011/texmf-dis
t/fonts/type1/public/lm/lmmi8.pfb></usr/local/texlive/2011/texmf-dist/fonts/typ
e1/public/lm/lmr10.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/public/l
m/lmr12.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/public/lm/lmr17.pfb
></usr/local/texlive/2011/texmf-dist/fonts/type1/public/lm/lmr7.pfb></usr/local
/texlive/2011/texmf-dist/fonts/type1/public/lm/lmr8.pfb></usr/local/texlive/201
1/texmf-dist/fonts/type1/public/lm/lmri12.pfb></usr/local/texlive/2011/texmf-di
st/fonts/type1/public/lm/lmsy10.pfb></usr/local/texlive/2011/texmf-dist/fonts/t
ype1/public/lm/lmsy7.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/public
/lm/lmsy8.pfb></usr/local/texlive/2011/texmf-dist/fonts/type1/public/lm/lmtt10.
pfb>
Output written on laskurs_logik.hemtenta.pdf (5 pages, 251703 bytes).
SyncTeX written on laskurs_logik.hemtenta.synctex.gz.
Transcript written on laskurs_logik.hemtenta.log.
Latexmk: Found input bbl file 'laskurs_logik.hemtenta.bbl'
Latexmk: Log file says output to 'laskurs_logik.hemtenta.pdf'
Latexmk: Found biber source file(s) [/home/repabil/Dokument/skola/refse.bib laskurs_logik.hemtenta.bcf]
Rule 'pdflatex': Rules & subrules not known to be previously run:
   pdflatex
Rule 'pdflatex': The following rules & subrules became out-of-date:
      'pdflatex'
------------
Run number 1 of rule 'pdflatex'
------------
------------
Running 'pdflatex -recorder -halt-on-error -interaction=nonstopmode -shell-escape -synctex=1  -recorder  "vc.tex"'
------------
laskurs_logik.hemtenta.aux
laskurs_logik.hemtenta.bcf
laskurs_logik.hemtenta.out
laskurs_logik.hemtenta.run.xml
Latexmk: All targets (laskurs_logik.hemtenta.pdf) are up-to-date
Latexmk: applying rule 'pdflatex'...
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
 \write18 enabled.
entering extended mode
(./vc.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian,
 icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or
iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji,
 lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol
ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven
ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded
.
)
! Emergency stop.
<*> vc.tex

!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on vc.log.
Failure to make 'vc.pdf'
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 256

------------
Latexmk: Some operations failed, for the following tex file(s)
  'vc.tex'
Latexmk: Use the -f option to force complete processing.
Latexmk: Errors, so I did not complete making targets

latexmk exited at Sat Nov  5 14:28:13

回答1:

There is a problem with how latexmk is being invoked. It is invoked with no arguments and so it tries to compile all tex files in the directory including the newly created vc.tex. This of course causes problems because vc.tex can't be compiled and so you get an error every time.

Starting from the function you have it is fairly easy to fix using TeX-command-expand like:

(defun run-latexmk ()
  (interactive)
  (let ((TeX-save-query nil)
        (TeX-process-asynchronous nil)
        (master-file (TeX-master-file)))
    (TeX-save-document "")
    (TeX-run-TeX "latexmk"
                 (TeX-command-expand "latexmk %t" 'TeX-master-file)
                 master-file)
    (if (plist-get TeX-error-report-switches (intern master-file))
        (TeX-next-error t)
      (minibuffer-message "latexmk done"))))

EDIT: In order to fix the problem with the "TeX Live 2011" buffer, you have to use the other answer as well.



回答2:

I have had this problem long ago, and I looked into it. It's due to the way AUCTeX parses the output trying to determine what file the error is in. When TeX starts reading a file it outputs (/path/to/the/file and when it finishes reading the file it prints ). There are numerous ways in which AUCTeX can misunderstand. The first "file" that it reads is TeX Live 2011, and then for whatever reason it thinks more files have closed than opened and you end up back in TeX Live 2011.

In the short example that you gave, the problem is that the output contains

(./auctex-bug2.texsh: ./vc: No such file or directory

and it doesn't recognize this as a new file since (I presume) it contains a :. Of course it would be the wrong file anyway, but that's neither here nor there. I can get the correct behaviour by adding a space to the *... output* buffer in the appropriate spot before running TeX-next-error (this isn't possible using your C-0 since it calls TeX-next-error automatically, but can be done when running "manually" via C-c C-c latexmk RET C-c C-l).

However, since I doubt this example is your actual problem you will need to find out what it actually is.

For me one common problem was AUCTeX incorrectly pasting together "overfull box" lines. You can read the the email where I figured this out as well as a fix (which is in the latest AUCTeX from CVS, but not in the latest release 11.86).

I recently had the same problem and decided to dig into it again. This time it was because of a line

Package hyperref Message: Driver (autodetected): hpdftex.

in which it didn't recognize (autodetected as a file, but it did think that the ) marked the end of a file. Anyway, I overwrote TeX-parse-error to colorize the output buffer which helped greatly in tracking it down. How to fix it will of course depend on what the problem is.

Below is what I used to colorize the output. Just evaluate the function definition and then run LaTeX as normal.

(defun TeX-parse-error (old)
  "Goto next error.  Pop to OLD buffer if no more errors are found."
  (let ((regexp
         (concat
          ;; TeX error
          "^\\(!\\|\\(.*?\\):[0-9]+:\\) \\|"
          ;; New file
          "(\\(\"[^\"]*?\"\\|/*\
\\(?:\\.+[^()\r\n{} \\/]*\\|[^()\r\n{} .\\/]+\
\\(?: [^()\r\n{} .\\/]+\\)*\\(?:\\.[-0-9a-zA-Z_.]*\\)?\\)\
\\(?:[\\/]+\\(?:\\.+[^()\r\n{} \\/]*\\|[^()\r\n{} .\\/]+\
\\(?: [^()\r\n{} .\\/]+\\)*\\(?:\\.[-0-9a-zA-Z_.]*\\)?\\)?\\)*\\)\
)*\\(?: \\|\r?$\\)\\|"
          ;; End of file
          "\\()\\))*\\|"
          ;; Hook to change line numbers
          " !\\(?:offset(\\([---0-9]+\\))\\|"
          ;; Hook to change file name
          "name(\\([^)]+\\))\\)\\|"
          ;; LaTeX bad box
          "^\\(\\(?:Overfull\\|Underfull\\|Tight\\|Loose\\)\
 \\\\.*?[0-9]+--[0-9]+\\)\\|"
          ;; LaTeX warning
          "^\\(LaTeX [A-Za-z]*\\|Package [A-Za-z]+ \\)Warning:.*")))
    (while
        (cond
         ((null
           (re-search-forward regexp nil t))
          ;; No more errors.
          (message "No more errors.")
          (beep)
          (TeX-pop-to-buffer old)
          nil)
         ;; TeX error
         ((match-beginning 1)
          (when (match-beginning 2)
            (unless TeX-error-file
              (push nil TeX-error-file)
              (push nil TeX-error-offset))
            (unless (car TeX-error-offset)
              (rplaca TeX-error-file (TeX-match-buffer 2))))
          (if (looking-at "Preview ")
              t
            (TeX-error)
            nil))
         ;; LaTeX bad box
         ((match-beginning 7)
          (if TeX-debug-bad-boxes
              (progn
                (TeX-warning (TeX-match-buffer 7))
                nil)
            (re-search-forward "\r?\n\
\\(?:.\\{79\\}\r?\n\
\\)*.*\r?$")
            t))
         ;; LaTeX warning
         ((match-beginning 8)
          (if TeX-debug-warnings
              (progn
                (TeX-warning (TeX-match-buffer 8))
                nil)
            t))

         ;; New file -- Push on stack
         ((match-beginning 3)
          (overlay-put
           (make-overlay (match-beginning 3) (match-end 3))
           'face 'font-lock-type-face)
          (let ((file (TeX-match-buffer 3))
                (end (match-end 3)))
            ;; Strip quotation marks and remove newlines if necessary
            (when (or (eq (string-to-char file) ?\")
                      (string-match "\n" file))
              (setq file
                    (mapconcat 'identity (split-string file "[\"\n]+") "")))
            (push file TeX-error-file)
            (push nil TeX-error-offset)
            (goto-char end))
          t)

         ;; End of file -- Pop from stack
         ((match-beginning 4)
          (overlay-put
           (make-overlay (match-beginning 4) (match-end 4))
           'face 'font-lock-warning-face)
          (when (> (length TeX-error-file) 1)
            (pop TeX-error-file)
            (pop TeX-error-offset))
          (goto-char (match-end 4))
          t)

         ;; Hook to change line numbers
         ((match-beginning 5)
          (setq TeX-error-offset
                (list (string-to-number (TeX-match-buffer 5))))
          t)

         ;; Hook to change file name
         ((match-beginning 6)
          (setq TeX-error-file
                (list (TeX-match-buffer 6)))
          t)))))

EDIT:

As for you second example, that's a tough one because like TeX reads to the end of the file and closes it before it gives the error. So technically when the error comes you aren't in any file, but that's just only because TeX doesn't understand where the real error occured.

Anyway, here is an exceedingly dirty way to work around the problem. What it does is attempts to reconstruct what file should be the "default" based on the name of the output buffer *file-name output*. This is simply masking the problem, but will probably work at least 80% of the time if your documents consist of a single file. When it doesn't work it will be confusing--perhaps even more than now. :-)

(defadvice TeX-parse-reset (after make-master-file-default () activate)
  (push (concat (substring (buffer-name) 1 (- (length (buffer-name)) 8)) "." TeX-default-extension) TeX-error-file)
  (push nil TeX-error-offset))