以下代码会产生错误。如果删除 mathtools 包,它就可以正常工作。为什么?
\documentclass{report}
\usepackage{mathtools}
\usepackage{etoolbox}
\newbool{shorttoc}
\makeatletter
\patchcmd{\@startshorttoc}{\bgroup}{\bgroup\booltrue{shorttoc}}{}{}
\makeatother
\begin{document}
\tableofcontents
\addtocontents{toc}{\protect\ifbool{shorttoc}{\setcounter{tocdepth}{0}}{}}
\chapter{Test Appendix}
\end{document}
这个问题与我之前的一个问题。
答案1
mathtools
加载calc
包,这会更改\setcounter
命令。现在你还必须保护它:
\addtocontents{toc}{\protect\ifbool{shorttoc}{\protect\setcounter{tocdepth}{0}}{}}