仅显示 \listoftheorems 中的 \NAME

仅显示 \listoftheorems 中的 \NAME

我正在使用该thmtools软件包,我想修改它\listoftheorems以仅打印定理的名称。例如,我的文档可能看起来像下面显示的文档。当我编译此文档时,我的“问题列表”的第一行是“1 问题(名称 1)... 1”。但是,我希望它是“1 名称 1 ... 1”。有没有办法做到这一点?我弄清楚了如何更新命令\listtheoremname以更改问题列表的标题。文档thmtools说“如果你够大胆,定理类型“引理”的代码就在里面,\l@lemma等等。”这让我乐观地认为我可以更新命令\l@problem来做我想做的事情,但我对 TeX 的了解还不够,无法实现这一点。

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

答案1

尝试这个:

\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

如果没有标题,它将不会留下任何文本,但对于您的情况来说这听起来没问题。

相关内容