我正在为我的论文创建一个thmtools
带有定理和定义列表。\listoftheorems
我有以下定理类型(按样式分组)
- 引理,主张,推论,定理
- 定义,算法,符号
- 例子,笔记
以及相关的定理声明。
当我告诉\listoftheorems
仅显示第一组(按\listoftheorems[ignoreall, show={lemmathm, propositionthm, corollarythm, theoremthm}]
(其中lemmathm
,等是环境名称))时,列表还包括其他两组的条目。
但是,创建的定义列表\listoftheorems[ignoreall, show={definitionthm}]
是正确的。
我的命令调用似乎没有错。我根据thmtools
文档中的示例进行了改编
多个过滤器是否存在已知问题(看起来是这样)?有人可以提供修复或解决方法吗?
平均能量损失
以下 MWE 在我的系统上重现了错误。我已尽可能地删除了可能存在不良交互的依赖项。——请原谅我的德语。;)
\documentclass[11pt, a4paper, twoside, openany, hidelinks]{book}
%!%!%!%!%!%!
% packages %
%!%!%!%!%!%!
%
% decoding/ encoding
%
\usepackage[applemac]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
%
% fonts & symbols
%
\usepackage{bera}
\usepackage{amsmath}
\usepackage{amssymb}
%
% layout
%
\usepackage{amsthm, thmtools}
\usepackage{listings}
%!%!%!%!%!%!
% commands %
%!%!%!%!%!%!
%
% font commands
%
\newcommand{\berafamily}{\fontfamily{fve}\selectfont}
%%%%%%%%%%%%%%%%%%%%
% theorem commands %
%%%%%%%%%%%%%%%%%%%%
%
% Sub theorem counters.
%
\newcounter{subtheoremcounter}
\setcounter{subtheoremcounter}{0}
\declaretheoremstyle[
spaceabove=1em,
spacebelow=1em,
headfont=\normalsize\bfseries\berafamily,
bodyfont=\rmfamily\normalsize,
postheadspace=\parindent,
postheadhook={\hfill\newline\setcounter{subtheoremcounter}{0}},
qed=$\square$,
headpunct={.}]{proof-style}
\declaretheorem[numberwithin=chapter, style=proof-style, name=Theorem]{theoremthm}
\declaretheorem[numberlike=theoremthm, style=proof-style, name=Proposition]{propositionthm}
\declaretheorem[numberlike=theoremthm, style=proof-style, name=Lemma]{lemmathm}
\declaretheorem[numberlike=theoremthm, style=proof-style, name=Korollar]{corollarythm}
\declaretheoremstyle[
spaceabove=1em,
spacebelow=1em,
headfont=\normalsize\bfseries\berafamily,
bodyfont=\rmfamily\normalsize,
postheadspace=\parindent,
postheadhook={%
\hfill\newline%
\setcounter{subtheoremcounter}{0}},
qed=$\blacksquare$,
headpunct={.}]{definition-style}
\declaretheorem[numberlike=theoremthm, style=definition-style, name=Definition]{definitionthm}
\declaretheorem[numberlike=theoremthm, style=definition-style, name=Algorithm]{algorithmthm}
\declaretheorem[numberlike=theoremthm, style=definition-style, name=Notation]{notationthm}
\declaretheoremstyle[
spaceabove=1em,
spacebelow=1em,
headfont=\normalsize\bfseries\berafamily,
bodyfont=\rmfamily\normalsize,
postheadspace=\parindent,
postheadhook={\setcounter{subtheoremcounter}{0}},
qed=$\blacksquare$]{example-style}
\declaretheorem[numberlike=theoremthm, style=example-style, name=Beispiel]{examplethm}
\declaretheorem[numberlike=theoremthm, style=example-style, name=Bemerkung]{notethm}
\makeatletter
%
% Title, date, institute, etc.
%
\title{<Titel>}
\author{<Autor>}
\date{\today}
%!%!%!%!%!%!
% document %
%!%!%!%!%!%!
\begin{document}
\raggedbottom
%
% I. Front Matter
%
\frontmatter
%
% I.1 Title Page
%
\maketitle
%
% I.1 Inhaltsverzeichnis
%
\tableofcontents
%
% II. Main Matter
%
\mainmatter
\addcontentsline{toc}{part}{Hauptteil}
%
% II.1
%
\chapter{Das erste Kapitel!}
\section{Der erste Abschnitt!}
\begin{definitionthm}[Definition A]%
\ldots
\end{definitionthm}
\begin{lemmathm}[Lemma 1]%
\ldots
\end{lemmathm}
\begin{notationthm}[Notation]
\ldots
\end{notationthm}
\begin{propositionthm}[Proposition 2]%
\ldots
\end{propositionthm}
\begin{notethm}
\ldots
\end{notethm}
\begin{examplethm}
\ldots
\end{examplethm}
\begin{theoremthm}[Theorem 3]%
\ldots
\end{theoremthm}
\section{Der Zweite Abschnitt!}
\begin{definitionthm}[Definition B]%
\ldots
\end{definitionthm}
\begin{definitionthm}[Definition C]%
\ldots
\end{definitionthm}
\begin{lemmathm}[Lemma 4]%
\ldots
\end{lemmathm}
\begin{lemmathm}[Lemma 5]%
\ldots
\end{lemmathm}
\begin{propositionthm}[Proposition 6]%
\ldots
\end{propositionthm}
\chapter{Das Zweite Kapitel!}
\section{Der Erste Abschnitt!}
\begin{definitionthm}[Definition D]%
\ldots
\end{definitionthm}
\begin{notethm}
\ldots
\end{notethm}
\begin{lemmathm}[Lemma 7]%
\ldots
\end{lemmathm}
\begin{examplethm}
\ldots
\end{examplethm}
\begin{theoremthm}[Theorem 8]%
\ldots
\end{theoremthm}
\begin{examplethm}
\ldots
\end{examplethm}
\begin{notationthm}[Notation]
\ldots
\end{notationthm}
%
% III. Anhang
%
\newpage
\appendix
\chapter*{Anhang}
\addcontentsline{toc}{chapter}{Anhang}
%
% IV. Verzeichnisse
%
\backmatter
%\chapter*{Verzeichnisse}
\addcontentsline{toc}{chapter}{Verzeichnisse}
%
% IV.1 Theoreme
%
\renewcommand{\listtheoremname}{Theoremverzeichnis}
\addcontentsline{toc}{section}{Theoremverzeichnis}
\listoftheorems[showall, ignore={definitionthm, notationthm, notethm, examplethm}]
%
% IV.2 Definitionen
%
\renewcommand{\listtheoremname}{Definitionsverzeichnis}
\addcontentsline{toc}{section}{Definitionsverzeichnis}
\listoftheorems[ignoreall, show={definitionthm}]
%
% IV.3 Tabellen
%
%\section*{Tabellenverzeichnis}
\addcontentsline{toc}{section}{Tabellenverzeichnis}
\listoftables
%
% IV.4 Abbildungen
%
%\section*{Abbildungsverzeichnis}
\addcontentsline{toc}{section}{Abbildungsverzeichnis}
\listoffigures
%
% IV.5 Listings
%
%
%!ref http://stackoverflow.com/a/9480618
%
\renewcommand{\lstlistlistingname}{Listingverzeichnis}
\addcontentsline{toc}{section}{Listingverzeichnis}
\lstlistoflistings
\end{document}
答案1
您应避免在选项中使用空格show
:
\listoftheorems[ignoreall, show={lemmathm,propositionthm,corollarythm,theoremthm}]
顺便说一句,你应该\cleardoublepage
按照\addcontentsline
说明使用。
当然你也应该对为数字保留的空间采取行动,但这是另一回事。
按照你的命令
\listoftheorems[ignoreall, show={lemmathm, propositionthm, corollarythm, theoremthm}]
日志文件包含
showing lemmathm
showing propositionthm
showing corollarythm
showing theoremthm
并且额外的空格将被视为要添加的定理名称的一部分。
和
\listoftheorems[ignoreall, show={lemmathm,propositionthm,corollarythm,theoremthm}]
日志文件有
showing lemmathm
showing propositionthm
showing corollarythm
showing theoremthm