如果我使用\listoffigures
命令 LaTeX 会创建一个新章节(我使用的是 book 类),但没有章节标题。它是否像使用 一样\chapter*{List of figures}
。当然,在大多数情况下,这都是我们想要的,但我该怎么做才能获得:
Chapter 3
List of figures
\listoftheorems
实际上,我需要这些来执行包中的命令thmtools
,但它们应该是相同的。
答案1
由于\listoftheorems
内部使用\listoffigures
,您可以使用etoolbox
要修补的包\listoffigures
将默认值更改\chapter*
为\chapter
(有关使用的解决方案amsbook
,请参见下面的第二个示例):
\documentclass{book}
\usepackage{amsmath}
\usepackage{thmtools}
\usepackage{etoolbox}
\declaretheorem[name=Theorem]{theo}
\begin{document}
\listoffigures
\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}
\listoftheorems
\clearpage
\begin{theo}[a]
Test theorem
\end{theo}
\begin{theo}[b]
Test theorem
\end{theo}
\begin{theo}[c]
Test theorem
\end{theo}
\begin{theo}[d]
Test theorem
\end{theo}
\end{document}
如果需要,可以很容易地对其他列表进行类似的修补。例如,对于表格列表,可以这样说
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}
已提出请求执行类似的修改,但使用amsbook
;在这种情况下,必须做一些额外的工作:
\documentclass{amsbook}
\usepackage{amsmath}
\usepackage{thmtools}
\usepackage{etoolbox}
\declaretheorem[name=Theorem]{theo}
\begin{document}
\listoffigures
\makeatletter
\patchcmd{\@starttoc}{\@makeschapterhead}{\@makechapterhead}{}{}
\def\@dotsep{1000}
\def\listoftheorems{\refstepcounter{chapter}\@starttoc{loe}\listtheoremname}
\def\l@figure{\@tocline{0}{3pt plus2pt}{0pt}{}{}}
\makeatother
\listoftheorems
\clearpage
\begin{theo}[a]
Test theorem
\end{theo}
\begin{theo}[b]
Test theorem
\end{theo}
\begin{theo}[c]
Test theorem
\end{theo}
\begin{theo}[d]
Test theorem
\end{theo}
\end{document}
答案2
据我了解,您期待以下行为:
\documentclass{book}
\begin{document}
\makeatletter
\renewcommand\listoffigures{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter{\listfigurename}%
\@mkboth{\MakeUppercase\listfigurename}%
{\MakeUppercase\listfigurename}%
\@starttoc{lof}%
\if@restonecol\twocolumn\fi
}
\makeatother
\chapter{AA}
\begin{figure}
\caption{aa}
\end{figure}
\begin{figure}
\caption{baa}
\end{figure}
\begin{figure}
\caption{caa}
\end{figure}
\listoffigures
\end{document}