如果 Overleaf 可以编译包含少量错误的文件,那就太好了。这在 Texworks 中已经可以实现:按下 control+T,它会提示错误,然后你仍然要编译。按住 Enter 键足够长的时间,你就可以跳过所有错误。
Overleaf 对错误的容忍度非常低。我能做些什么来覆盖 overleaf 中的错误吗?
答案1
我不知道 OverLeaf 到底是做什么的。但我可以确认的是
\scrollmode
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
\textbf{abc}
\textba{def}
\textsf{ghi}
\textit{jkl}
\end{document}
编译失败并出现错误。最初,我认为这一定是因为 OverLeaf 也在命令行中使用了--halt-on-error
选项,因为pdflatex --halt-on-error
编译失败并出现错误。
然而,改变
\scrollmode
到
\batchmode
导致编译在本地编译时仅仅暂停然后继续,即使使用--halt-on-error
。然而,在 OverLeaf 上,编译仍然会失败并出现错误。
日志文件以此内容开头:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2016.11.17) 24 NOV 2016 02:33
entering extended mode
\write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
相比之下,本地编译:
This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) (preloaded format=pdflatex 2016.11.20) 24 NOV 2016 02:27
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
只是file:line:error style messages enabled.
因为 OverLeaf 必须传递--file-line-error
给pdflatex
。这不会停止\batchmode
继续编译 - 至少,它不会在本地执行此操作。添加 也不会--shell-escape
解释 OverLeaf 日志中没有 的原因restricted
。(大概,他们无论如何都在全局限制事情。)这些都不足为奇 - 如果这些选项有所不同,那就很奇怪了。我只是记录了我仔细检查的事实,以确保安全。
我猜想在出现错误时会有其他进程中断编译,尽管我猜想无论如何安装都可能被修改为这样做。但我猜想是一个独立的进程,因为他们使用这样的进程在其他情况下中断编译,例如如果编译时间过长,它将被终止。所以我猜想他们的监控进程也会在出现错误时停止编译,无论用户做什么。
这只是一个猜测,但如果它是正确的,那么除非你能说服 OverLeaf 改变该流程的工作方式,否则你就无能为力。
我应该说我对这些都不太确定,主要发布这篇文章是为了让更有知识的人可以看到 OverLeaf 在做什么并提供解释和说明!