
Ich versuche, eine Liste aller Gleichungen in einem Dokument zu erstellen. Ich habe gesucht und es schien eine gute Lösung zu sein, das zu verwenden thmtools
, das eine Liste aller Theoreme erstellen kann (wenn ich richtig liege). Was ich suche, ist (im folgenden Beispiel im Kapitel-Spickzettel) eine Liste mit dem Inhalt aller Gleichungstheoreme als solche (mit LaTeX-Formatierung):
$Some_{Lowtext}$ (1)
$Some^{Hightext}$ (2)
Minimales (nicht) funktionierendes Beispiel:
\documentclass[a4paper,12pt]{report}
\usepackage{theorem}
\newtheorem{equate}{}
\usepackage{thmtools}
\renewcommand{\listtheoremname}{List of Equations}
\begin{document}
\tableofcontents
\newpage
\chapter{Name of Chapter}
\section{Name of Section}
\subsection{Name of SubSection}
sometext
\begin{equate}
$Some_{Lowtext}$
\end{equate}
Some other Text
\begin{equate}
$Some^{Hightext}$
\end{equate}
And some more
\chapter{CheatSheet}
\listoftheorems
\end{document}
Dies führt zu den folgenden Fehlern (Zeile 24 ist die Zeile nach \listoftheorems
):
test.tex:24: Missing \endcsname inserted. []
test.tex:24: Too many }'s. []
Ich frage mich, ob dies die Möglichkeit ist, eine solche Liste zu erstellen und wie ich meinen Fehler beheben kann.
Antwort1
Verwenden Sie declaretheorem
anstelle von\newtheorem
Die Pakete theorem
und thmtools
verwenden unterschiedliche Mechanismen zum Definieren von Theoremumgebungen: theorem
Das Paket von Frank Mittelbach verwendet das LaTeX-Kernel- \newtheorem
Makro, während das Paket von Ulrich Schwarz ein Makro thmtools
bereitstellt .\declaretheorem
Das thmtools
Paket stellt auch ein \listoftheorems
Makro zur Verfügung, dieses listet jedoch nur die mit deklarierten Theoremumgebungen auf \declaretheorem
,nichtdiejenigen, die einfach mit deklariert werden \newtheorem
. Wenn Sie also die Vorteile von nutzen möchten \listoftheorems
, sollten Sie alle Ihre Theoreme mit deklarieren thmtools
und \declaretheorem
nicht \newtheorem
explizit verwenden.
\documentclass[a4paper,12pt]{report}
\usepackage{thmtools}
\declaretheorem{equate}
\renewcommand{\listtheoremname}{List of Equations}
\begin{document}
\begin{equate}[Low text]
$Some_{Lowtext}$
\end{equate}
Some other Text
\begin{equate}[High text]
$Some^{Hightext}$
\end{equate}
\listoftheorems
\end{document}
Weitere Details zu den von Ihnen gemeldeten Fehlern
Wenn \declaretheorem
es nicht mindestens einmal in der Eingabedatei verwendet wird, \listoftheorems
werden die beiden von Ihnen gemeldeten Fehler generiert. Hier ist ein Mindestcode, der das Problem reproduziert:
\documentclass{report}
\usepackage{thmtools}
%\declaretheorem{foo}
\begin{document}
\listoftheorems
\end{document}
Es werden keine Fehler generiert, wenn die dritte Zeile des obigen Codes unkommentiert bleibt. Meiner Meinung nach ist dieses Verhalten unbeabsichtigt und stellt einen Fehler dar. Der Autor sollte wahrscheinlich darüber informiert werden.