使用 pdfpages 包含外部 PDF 时无法设置 tocdepth

使用 pdfpages 包含外部 PDF 时无法设置 tocdepth

我正在尝试做什么

我有一个包含多个章节的附录的文档。

  1. 第一个\chapter不应获得任何特殊待遇。

  2. 其次,\chapter我想\section从目录中排除标题。可以通过放置

    \addtocontents{toc}{\setcounter{tocdepth}{0}}
    

    在......面前\chapter

  3. 第三个\chapter应包含外部 PDF 文件的所有页面。这可以通过添加

    \includepdf[pages=-]{external.pdf}
    

    到本章。

平均能量损失

\documentclass[11pt]{scrbook}
\usepackage{graphicx}
\usepackage{pdfpages}
\begin{document}

\tableofcontents


\part{Appendix}
\appendix

\chapter{First appendix}
\section{Section}

\addtocontents{toc}{\setcounter{tocdepth}{0}}
\chapter{Second appendix}
Don't list sections in TOC, please.

\section{Section}
Should not be listed in TOC.

\chapter{Third appendix}
Should include all pages of external PDF file.

\includepdf[pages=-]{external.pdf}
\end{document}

问题

如果我仅有的设置tocdepth(并省略负责包含的代码external.pdf),文档可以干净地编译。

同样地,如果我仅有的包括external.pdf(并省略改变的代码tocdepth),该文档也能干净地编译。

但是,当我尝试按照上面的MWE进行编译时,我会收到以下错误消息:

ERROR: Undefined control sequence.

--- TeX said ---
\@calc@post@scan ...st@scan \else \def \calc@next 
                                              {\calc@error #1}\fi \fi \f...
l.23 \addtocontents{toc}{\setcounter{tocdepth}{0}}

问:我该如何满足上述所有要求让文档干净地编译吗?

答案1

包裹pdfpages装载calc,使其\setcounter易碎。

解决方案:

\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}

相关内容