当出现错误时,不要让我手动中止LaTeX编译

dre*_*ves 65 automation latex prompt expect latexmk

正如这里所建议的latexmk那样,只要源更改,就可以方便地连续编译文档.但是,当您处理文档时,通常会出现错误,然后latex在继续之前会发生恐慌并等待用户输入.这可能会非常烦人,特别是最近我latex直接从一个以太网板文件中编译的东西,这会在你输入时不断保存.

如果它无法编译,是否有设置latexlatexmk使其只是中止错误消息?或者,如果有必要,我如何设置某种Expect脚本来自动解除LaTeX的投诉?

(我原以为pdflatex可以选择-halt-on-error诀窍,但显然不是.)

奖金问题:在Mac OSX上浏览是一个不错的pdf查看器,当pdf更改时会自动恢复(与预览不同),除非每当出现乳胶错误时它会再次确认您需要自动清除.Texniscope没有这个问题,但由于其他原因我不得不抛弃Texniscope .有没有办法让Skim始终自动刷新,还是有其他观众可以做到这一点?


增加:latexmk基于这个问题的答案的迷你教程:

  1. 获取latexmk此: http://www.phys.psu.edu/~collins/software/latexmk-jcc/

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

    $pdflatex = 'pdflatex -interaction=nonstopmode';
    
    Run Code Online (Sandbox Code Playgroud)

    (对于OS X with Skim)

    $pdf_previewer = "open -a /Applications/Skim.app";
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编辑源文件时,foo.tex在终端中运行以下命令:

    latexmk -pvc -pdf foo.tex
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用Skim或其他实时pdf查看器查看foo.pdf.对于Skim,只需查看Skim首选项中的"同步"选项卡,并为编辑器进行设置.

瞧!点击保存foo.tex现在将导致foo.pdf刷新而不触及任何东西.

Bas*_*ard 39

使用MikTeX,pdflatex有这个命令行选项:

  -interaction=MODE               Set the interaction mode; MODE must be one
                                  of: batchmode, nonstopmode, scrollmode,
                                  errorstopmode.
Run Code Online (Sandbox Code Playgroud)

编辑由@ 9999years建议:

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

TeX使用提示:

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

  • errorstopmode 停止所有错误,无论是关于源代码中的错误还是不存在的文件.

  • scrollmode 不停止源中的错误,但是当发生更严重的错误(如丢失的文件)时请求输入.

  • 在有些名字错误的情况下nonstopmode,TeX在严重错误后不会请求输入,但会完全停止.

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

  • 这不是专门针对MixTeX甚至是LaTeX的 - 它来自Knuth的第一个版本的TeX AFAIK. (8认同)
  • 答:它正在讨论原始TeX命令,我认为我想要nonstopmode:显示控制台上的所有错误,但不会提示它们.errorstopmode就是它通常所做的.scrollmode停止某些错误,如丢失的文件.batchmode既不停止也不向控制台输出错误. (6认同)
  • 即使它不存在,我已经使用echo q | pdflatex一段时间来实现这一目标; 效果很好:) (2认同)
  • 我无法弄清楚这些模式究竟意味着什么.该联机帮助页说"这些模式的含义与相应的\命令相同".它在说什么"\命令"? (2认同)

Elm*_*der 6

你也可以把你的tex文件放在\nonstopmode\batchmode开头; 然后它将适用于任何TeX版本,而不仅仅是pdflatex.有关这些命令和相关命令的更多信息,请参阅David Bausum对(原始)TeX命令的非常好的参考.特别是调试系列的命令可能会引起人们的兴趣.