我收到两次错误:
包 currfile 警告:文件堆栈下溢!在输入行 xxx。
我没有明确地加载currfile
,但独立程序似乎可以加载。
\usepackage{standalone}
我在一行上加载后收到一次此警告,其中写入了有效的 if 指令( ),并且在该行之后\ifclolor ... \fi
再次收到此警告。standalone.sty
\RequirePackage{currfile}
\ifsa@subpreambles
我不知道这个警告是什么意思,所以我不知道该搜索什么。到目前为止,还没有任何地方处理过此消息。
编辑:
经过一番搜索,我发现它在加载时出现unicode-math
,并且standalone
% arara: lualatex
\documentclass{scrreprt}
\usepackage{unicode-math}
\usepackage{standalone}
\begin{document}
\chapter{Chapter}
Nothing
\end{document}
答案1
此警告是由currfile
at-end 钩子引起的,因为它试图恢复不可用的父文件名。如果currfile
由另一个包加载而不是在主文件中加载,就会出现这种情况。
currfile
需要filehook
并为所有文件安装相应的 at-begin 和 at-end 钩子。如果filehook
之前尚未加载,则钩子将仅受之后打开的所有文件的影响。但是,如果它已经加载,则执行 at-end 钩子currfile
和加载它的包,以及加载该包的包等,而 at-begin 钩子在修补它们之前已经执行currfile
。这会导致堆栈下溢。
currfile
一种解决方法是在序言中尽早加载,filehook
在被任何包或类加载之前。
由于我认为在这种情况下没有真正的方法可以避免堆栈下溢,而且这不是问题,在任何其他情况下都不会发生下溢,所以我现在完全删除了警告。在这种情况下,宏\currfilename
总是空的。我现在将它们更改为保存主文件名。我将很快将这些更改发布为新版本。
参见官方错误单了解更多信息。