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
的迷你教程:
~/.latexmkrc
文件中:
$pdflatex = 'pdflatex -interaction=nonstopmode';
(适用于带Skim的OS X)
foo.tex
,在终端中运行以下命令:
latexmk -pvc -pdf foo.tex
瞧!在
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