AucTeX 将 Tikz 警告误认为错误

AucTeX 将 Tikz 警告误认为错误

使用 Tikz Externalize 时,AucTeX 11.90(Emacs 25.2)会出现以下错误而不是警告:

! Package tikz Warning: The key 'up to date check=md5' is impossible, there is no macro to compute MD5. Falling back to 'up to date check=diff'.

虽然我的 PDF 编译得很好,但我发现错误的错误相当烦人。如能帮助解决此问题,我们将不胜感激。

我的初始化文件中有以下自定义设置变量:

'(TeX-debug-bad-boxes t)
'(TeX-debug-warnings t)
'(TeX-display-help nil)
'(TeX-engine (quote xetex))
'(TeX-error-overview-open-after-TeX-run t)
'(TeX-source-correlate-mode t)
'(TeX-source-correlate-start-server t)

梅威瑟:

\documentclass[12pt]{article}
\usepackage{fontspec,realscripts}
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} 
\setmainfont[Scale=1]{Libertinus Serif}

\usepackage{tikz}
\usetikzlibrary{external} \tikzexternalize[prefix=tikz/]

\begin{document}
\begin{figure}
  \centering
  \begin{tikzpicture}
    \draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
  \end{tikzpicture}
\end{figure}
\end{document}
%%% Local Variables:
%%% TeX-command-extra-options: "-shell-escape"
%%% End:

答案1

感叹号通常用于表示错误,而不是警告。例如,请考虑以下文档:

\documentclass{article}
\usepackage{does-not-exist}
\begin{document}
Hello world!
\end{document}

这会导致日志中出现以下错误:

! LaTeX Error: File `does-not-exist.sty' not found.

致命错误也以 开头!(尝试使用纯 TeX 编译仅包含 : 的文档,会抛出\doesnotexist两个以 : 开头的不同错误!)。另请参阅https://en.wikibooks.org/wiki/LaTeX/Errors_and_Warnings#Error_messages TeXbook 还指出错误消息以感叹号开头。

因此,我认为这是 Ti 的一个不幸的决定Z 发出以感叹号开头的警告。其他 TeX 编辑器(我尝试过 AUCTeX、TeXstudio 和 Texworks)也存在同样的问题。这可以在 AUCTeX 中修复(但这非常棘手,因为有几种不同的错误消息以感叹号开头,并且 AUCTeX 的代码中有几处假定!为开始错误消息),但发出符合长期习惯的警告将减轻前端开发人员的痛苦。


对于这种特殊情况,可以使用消息中建议的选项来避免警告:

\tikzexternalize[prefix=tikz/,up to date check=diff]

相关内容