biblatex 混淆了 AMS 消除目录条目的解决方案

biblatex 混淆了 AMS 消除目录条目的解决方案

AMS 建议amsart通过在将要添加到目录之前隐藏该条目来从文档中删除目录条目。

他们的解决方案在未biblatex加载包的情况下也能正常工作。但是,当我加载包时biblatex,它失败了,即使使用 skip 命令,TOC 条目仍会打印出来。请参阅下面的 MWE 演示问题。

\documentclass{amsart}
% \usepackage{biblatex} %uncomment to see difference
\DeclareRobustCommand{\SkipTocEntry}[4]{}
\begin{document}
\tableofcontents
\addtocontents{toc}{\SkipTocEntry}
\section{First}
\end{document}

请注意,没有必要使用 biber在编译中演示了这个问题。pdflatex仅在文档上使用就显示了差异。

答案1

正如在为什么 biblatex 在 .toc 中产生“defcounter”行?biblatex.toc文件添加附加内容。因此,当您加载它时,您会得到

\defcounter {refsection}{0}\relax 
\contentsline {section}{\tocsection {}{1}{First}}{1}%

而不仅仅是

\contentsline {section}{\tocsection {}{1}{First}}{1}%

因此,如果你想吞下这条线,你就需要吞下更多。

\documentclass{amsart}
\usepackage{biblatex} %uncomment to see difference
\DeclareRobustCommand{\SkipTocEntry}[8]{}
\begin{document}
\tableofcontents
\addtocontents{toc}{\SkipTocEntry}
\section{First}
\end{document}

如果您加载,hyperref则需要吞噬更多,因为参数结构会发生变化。

\DeclareRobustCommand{\SkipTocEntry}[9]{}

相关内容