5

I am using the thmtools package, and I want to modify \listoftheorems to only print the name of the theorem. For example, my document might look something like the one shown below. When I compile this document, the first line of my "List of Problems" is "1 Problem (Name 1) ... 1". However, I want it to be "1 Name 1 ... 1". Is there anyway to do this? I figured out how to renew the command \listtheoremname in order to change the title of list of problems. The documentation for thmtools says "If you're daring, the code for theorem type "lemma" is in \l@lemma and so on." This makes me optimistic that I can renew the \l@problem command to do what I want, but I don't know enough about TeX to make this happen.

\documentclass{article}

\usepackage{amsthm}
\usepackage{thmtools}

\declaretheorem{problem}
\renewcommand{\listtheoremname}{List of Problems}

\begin{document}

\listoftheorems

\begin{problem}[Name 1]
description of problem 1
\end{problem}

\begin{problem}[Name 2]
description of problem 2
\end{problem}

\end{document}
5

Try this:

\makeatletter
%\show\ll@problem gives default definition:
% \protect \numberline {\csname the\thmt@envname \endcsname }\thmt@thmname \ifx
% \@empty \thmt@shortoptarg \else \protect \thmtformatoptarg {\thmt@shortoptarg 
% }\fi
\def\ll@problem{%
  \protect\numberline{\theproblem}\thmt@shortoptarg%
}
\makeatother

it will leave no text if there's no title, but that sounds OK for your case.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.