Lista de teoremas com thmtools não funcionando - \endcsname ausente inserido

Lista de teoremas com thmtools não funcionando - \endcsname ausente inserido

Estou tentando gerar uma lista de todas as equações em um documento. Pesquisei e me pareceu que uma boa solução seria usar o thmtools, que pode gerar uma lista de todos os teoremas (se estiver correto). O que procuro é (no exemplo a seguir, no capítulo CheatSheet) uma lista com o conteúdo de todos os teoremas de igualdade, como tal (com formatação LaTeX):

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

Exemplo mínimo (não) funcional:

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

Isso me dá os seguintes erros (a linha 24 é a linha depois \listoftheorems):

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

Gostaria de saber se esta é a maneira de produzir essa lista e como posso resolver meu erro.

Responder1

Usar declaretheoremem vez de\newtheorem

Os pacotes theoreme thmtoolsusam mecanismos diferentes para definir ambientes de teoremas: o pacote de Frank Mittelbach theoremusa a macro do kernel LaTeX \newtheorem, enquanto o pacote de Ulrich Schwarz thmtoolsfornece uma \declaretheoremmacro.

O thmtoolspacote também fornece uma \listoftheoremsmacro, mas esta última lista apenas os ambientes do teorema declarados com \declaretheorem,nãoaqueles simplesmente declarados com \newtheorem. Portanto, se você quiser tirar vantagem de \listoftheorems, você deve declarar todos os seus teoremas com thmtools's \declaretheoreme não usar \newtheoremexplicitamente.

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

insira a descrição da imagem aqui

Mais detalhes sobre os erros que você relata

Se \declaretheoremnão for usado pelo menos uma vez no arquivo de entrada, \listoftheoremsgera os dois erros que você reporta. Aqui está um código mínimo que reproduz o problema:

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

Nenhum erro será gerado se a terceira linha do código acima não for comentada. Na minha opinião, esse comportamento não é intencional e é qualificado como um bug; o autor provavelmente deveria ser notificado sobre isso.

informação relacionada