Список теорем, в которых thmtools не работает - вставлен отсутствующий \endcsname

Список теорем, в которых thmtools не работает - вставлен отсутствующий \endcsname

Я пытаюсь сгенерировать список всех уравнений в документе. Я искал и, похоже, хорошим решением будет использовать thmtools, который может сгенерировать список всех теорем (если я прав). То, что я ищу, это (в следующем примере, в главе CheatSheet) список с содержимым всех equate-теорем, как таковых (с форматированием LaTeX):

$Some_{Lowtext}$                                   (1)
$Some^{Hightext}$                                  (2)

Минимальный (не)рабочий пример:

\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}

Это приводит к следующим ошибкам (строка 24 — это строка после \listoftheorems):

test.tex:24: Missing \endcsname inserted. []
test.tex:24: Too many }'s. []

Мне интересно, можно ли таким образом составить такой список и как я могу исправить свою ошибку.

решение1

Использовать declaretheoremвместо\newtheorem

Пакеты theoremи thmtoolsиспользуют разные механизмы для определения сред теорем: пакет Фрэнка Миттельбаха theoremиспользует макрос LaTeX-kernel , тогда как пакет \newtheoremУльриха Шварца предоставляет макрос.thmtools\declaretheorem

Пакет thmtoolsтакже предоставляет \listoftheoremsмакрос, но последний перечисляет только среды теорем, объявленные с помощью \declaretheorem,нетте, которые просто объявлены с помощью \newtheorem. Поэтому, если вы хотите воспользоваться \listoftheorems, вам следует объявить все свои теоремы с помощью thmtools' \declaretheoremи не использовать их \newtheoremявно.

\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}

введите описание изображения здесь

Более подробная информация об ошибках, о которых вы сообщаете

Если \declaretheoremне используется хотя бы один раз во входном файле, \listoftheoremsгенерируются две ошибки, о которых вы сообщаете. Вот минимальный код, который воспроизводит проблему:

\documentclass{report}
\usepackage{thmtools}
%\declaretheorem{foo}
\begin{document}
\listoftheorems
\end{document}

Ошибок не возникает, если третья строка кода выше не комментируется. По моему мнению, такое поведение непреднамеренно и квалифицируется как ошибка; автору, вероятно, следует сообщить об этом.

Связанный контент