# Only show \NAME in \listoftheorems

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}


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.

• – egreg Dec 16 '13 at 7:53