我正在使用软件包 scrwfile(用于每章后的多个目录)、scrlyaer-notecolumn(用于将文本放入边距列)以及 \tableofcontents。但不知何故,这不再起作用了(一年前它工作得很好,现在我注意到它不再起作用了。)因为我对我的软件包进行了新的更新(2021 年 5 月 29 日,MiKTeX、TeXStudio、pdflatex)。所有带有 \makenote[marginpar] 的注释都不会打印,为什么?我做了一个例子(不起作用):
\documentclass{scrreprt}%
\usepackage{scrlayer-scrpage}%
\usepackage{scrlayer-notecolumn}%
\usepackage{scrwfile}% 1) When I load this AND use \tableofcontents, then \makenote doesn't work anymore (doesn't print anything into the margin column).
\begin{document}
\tableofcontents% 2)
Hello\makenote[marginpar]{I am here.} World.
\end{document}
如果有人知道为什么会发生这种情况,那就太好了。提前谢谢。:D
迈克尔·拉本巴赫
根据 Ulrike 的回答编辑:我现在改用 lualatex,在那里我没有遇到任何此类问题,但我仍然想知道为什么使用 pdflatex 得不到我想要的结果。这里有一个使用 scrwfile 的示例,正如作者 Markus Kohm 建议的那样(在 \documentclass(和 {scrlayer-notecolumn})之前)(当然,与使用的结果相同
\DeclareHookRule{enddocument/afteraux}{scrwfile}{before}{scrlayer-notecolumn}
):
\RequirePackage{scrwfile}%
\documentclass{scrreprt}%
\usepackage{scrlayer-scrpage}%
\usepackage{scrlayer-notecolumn}%
\begin{document}%
Hello.\makenote[marginpar]{1}% Should be printed only once, but is done twice now.
\tableofcontents%
\tableofcontents%, Problem when multiple tables (doesn't matter if it's always the same or different ones like after each chapter)
\end{document}%
-->结果应该只有一个“1”在边距列中,但实际上有两个,并且每个 \tableofcontents 都有一个……:.((正如我所说,lualatex 运行良好,没有 scrwfile 任何问题,所以我不需要太多答案,只是好奇。)
答案1
如果你交换两个包使用的钩子代码(或更改包顺序),它似乎可以再次工作。但你应该通知作者
\documentclass{scrreprt}%
\usepackage{scrlayer-scrpage}%
\usepackage{scrlayer-notecolumn}%
\usepackage{scrwfile}
\DeclareHookRule{enddocument/afteraux}{scrwfile}{before}{scrlayer-notecolumn}
\begin{document}
\tableofcontents% 2)
Hello\makenote[marginpar]{I am here.} World.
\end{document}