如何追踪盒子的所有更改

如何追踪盒子的所有更改

我目前正在全力调试日常使用 TeX 时遇到的一个神秘错误。我同时使用了很多软件包,但似乎无法找到导致错误的原因。

问题归结为,在某个时刻,框\footins从 void 变为空框,这导致输出例程中的 dblfnote 出错。我曾努力尝试查看它被设置在哪里,但无济于事。

\tracingassigns由于某些原因,它没有帮助。所以我正在寻找某种方法来跟踪对 的每一个更改\box\footins,这样我就能知道错误代码在哪里。

我希望我可以提出一个 MWE,但是错误条件对我来说相当神秘,所以我只能要求这种特殊的方法。

答案1

您可以将一些“跟踪”命令从一个地方放到另一个地方。例如:

\newcounter{test}
\newcommand\test{%
  \stepcounter{test}%
  \ifvoid\footins
    \message{^^JStill void at point number \thetest}
  \else
    \message{^^JNon void at point number \thetest}
  \fi
}
\test
\documentclass{article}
\test
\usepackage[T1]{fontenc}
\test
\usepackage[utf8]{inputenc}
\test
\usepackage{kpfonts}
\test
\usepackage{geometry}
\test
\usepackage[french]{babel}
\test

\begin{document}
\test
Hello world!
\end{document}

编译报告和日志文件显示 8 条消息“在点号 ... 处仍然无效”。

相关内容