通常情况下\tcblistof
可以正常工作,但对于该类则不行tufte-book
,我不明白为什么。这是 MWE。
\documentclass{tufte-book}
% \documentclass{book} % this works
\usepackage[theorems]{tcolorbox}
\newtcbtheorem[auto counter,number within=chapter,list inside=thm]{theo}{Theorem}{}{}
\begin{document}
\tcblistof[\chapter*]{thm}{List of Theorems}
\chapter{Chapter No1}
\begin{theo}{Theorem No1}{}
lipsum
\end{theo}
\end{document}
使用该类book
可按预期工作。我需要进行哪些更改tufte-book
?
答案1
OP 已经找到了解决方案这个答案. 这里我想谈一些一般性的问题。
tufte-book
类包含行
% Only show the chapter titles in the table of contents
\setcounter{tocdepth}{0}
并且由于tcolorbox
定义\l@tcolorbox
为 1 级
\newcommand*\l@tcolorbox{\@dottedtocline{1}{1.5em}{2.3em}}
因此\tcblistof[\chapter*]{thm}{List of Theorems}
只产生列表标题。
本地使用\setcounter{tocdepth}{1}
是一种解决方法,但生成的列表条目可能与图形和表格列表的样式不同。目前这两个列表中的条目定义为
\newcommand{\@tufte@lof@line}[2]{%
% #1 is the figure/table number and its caption text
% #2 is the page number on which the figure/table appears
\leftskip 0.0em
\rightskip 0em
\parfillskip 0em plus 1fil
\parindent 0.0em
\@afterindenttrue
\interlinepenalty\@M
\leavevmode
\@tempdima 2.0em
\advance\leftskip\@tempdima
\null\nobreak\hskip -\leftskip
{#1}\nobreak\qquad\nobreak#2%
\par%
}
\renewcommand*\l@figure{\@tufte@lof@line}
\let\l@table\l@figure
因此 OP 的回答\let\l@tcolorbox\l@figure
是一个好主意。
答案2
如果我添加它似乎有效
\makeatletter
\let\l@tcolorbox\l@figure
\makeatother