Latex Don';当出现';这是个错误

Latex Don';当出现';这是个错误,latex,automation,prompt,expect,latexmk,Latex,Automation,Prompt,Expect,Latexmk,正如所建议的那样,latexmk是一种在源代码更改时持续编译文档的便捷方法。但是,当您处理文档时,通常会出现错误,然后latex会出现恐慌,等待用户输入后再继续。这可能会让人非常恼火,尤其是最近,当我直接从一个文档中编译latex时,它会在您键入时不断保存 是否有latex或latexmk的设置,使其在无法编译时中止并显示错误消息?或者,如果有必要,我将如何设置某种Expect脚本来自动驳回LaTeX的投诉 (我原以为pdflatex的选项-halt-on-error会奏效,但显然不行。) 附加

正如所建议的那样,
latexmk
是一种在源代码更改时持续编译文档的便捷方法。但是,当您处理文档时,通常会出现错误,然后
latex
会出现恐慌,等待用户输入后再继续。这可能会让人非常恼火,尤其是最近,当我直接从一个文档中编译
latex
时,它会在您键入时不断保存

是否有
latex
latexmk
的设置,使其在无法编译时中止并显示错误消息?或者,如果有必要,我将如何设置某种Expect脚本来自动驳回LaTeX的投诉

(我原以为
pdflatex
的选项
-halt-on-error
会奏效,但显然不行。)

附加问题:MacOSX上的Skim是一个很好的pdf查看器,当pdf更改时自动刷新(与预览不同),除了当出现latex错误时,它会让您再次确认您想要自动刷新。Texniscope没有这个问题,但我不得不放弃Texniscope。有没有一种方法可以让Skim始终自动刷新,或者有没有另一个查看器可以做到这一点


添加:基于此问题的答案,关于
latexmk
的迷你教程:
  • 在此处获取最新的Xmk:

  • 将以下内容添加到
    ~/.latexmkrc
    文件中:

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    
    (适用于带Skim的OS X)

  • 编辑源文件时,
    foo.tex
    ,在终端中运行以下命令:

    latexmk -pvc -pdf foo.tex
    
  • 使用或其他实时pdf查看器查看foo.pdf。对于Skim,只需查看Skim首选项中的“同步”选项卡,并为编辑器设置它


  • 瞧!在
    foo.tex
    上点击save,现在将导致
    foo.pdf
    刷新而不触碰任何东西。

    对于MikTeX,
    pdflatex
    具有以下命令行选项:

      -interaction=MODE               Set the interaction mode; MODE must be one
                                      of: batchmode, nonstopmode, scrollmode,
                                      errorstopmode.
    

    @9999年建议编辑:

    这些值相当于提供相同功能的一组LaTeX
    \命令

    发件人:

    这些模式使TeX的行为方式如下:

    • errorstopmode
      停止所有错误,无论这些错误是关于 源代码或不存在的文件

    • scrollmode
      不会在源代码出现错误时停止,而是在出现错误时请求输入 发生更严重的错误,如丢失文件

    • 在有点命名错误的
      非操作模式下
      ,TeX在 严重错误,但完全停止

    • batchmode
      防止除此之外的所有输出(用于 自动脚本)。在所有情况下,所有错误都会写入日志文件 (yourtexfile.log)


    另一种可能的黑客方法是简单地使用:

    yes x | latexmk source.tex
    
    如果要使用此选项,则始终可以为“yes x | latexmk”创建别名。我在其他建议上面看到的主要优点是,当您偶尔希望latexmk这样做时,它会非常迅速


    Mehmet

    还有一个
    \batchmode
    命令可以完成这项工作。

    您也可以将
    \nonstopmode
    \batchmode
    放在tex文件的最开始处;然后,它将适用于任何TeX版本,而不仅仅是
    pdflatex
    。有关这些命令和相关命令的更多信息,请参阅“非常好”。特别是来自的命令在这里可能会引起兴趣。

    这不是MixTeX甚至LaTeX特有的——它是从Knuth的TeX AFAIK的第一个版本开始出现的。即使它不存在,我也已经使用echo q | pdflatex一段时间来实现这一点;工作得很好:)我很难弄清楚这些模式到底意味着什么。手册页上说“这些模式的含义与相应的\命令相同”。它在说什么“\commands”?回答:它在说原始的TeX命令,我想我需要非操作模式:在控制台上显示所有错误,但不提示它们。errorstopmode是它通常执行的操作。scrollmode因某些错误(如丢失文件)而停止。batchmode既不停止也不向控制台输出错误。Skim仍在阻挠一个完美的解决方案。现在,即使没有错误,它也会经常冻结并说“无法加载文件”,直到我说“确定”。我只想要一个永远不会让我烦恼的pdf查看器!你有关于如何使用Etherpad的教程吗?我使用-halt-on-error,它适合我。或者我真的不明白你的失败。关于Skim,这里也一样,没有更好的选择。。。我想,最好是和开发者谈谈,推动这项功能。你能把你的迷你教程移到一个答案上来吗?这不是问题的一部分。在使用latexmk时,您还可以直接使用“-interaction=nonstopmode”选项,以避免在出现错误时停止。这对于TexMaker来说是至关重要的,TexMaker将在出现任何错误时与latexmk挂起。您应该将该选项添加到latexmk命令中,在“选项>配置TexMaker>命令”中,这非常有用!
    yes x | latexmk source.tex