在定义中删除多余的信息?(thmtools&amsthm)

在定义中删除多余的信息?(thmtools&amsthm)

我注意到定理列表对于定义来说没有多大意义,因为我得到的基本上只是1.5 Def等,这并没有传达任何信息。因此,我添加了如下所示的额外信息,以便我能够进入1.5 Def (Vector Space)定理列表,这实际上对我有很大帮助。然而,这会让文本变得不那么清晰,因为现在Def. 1.5 我得到的不是Def. 1.5 (Vector Space)预期的结果。有没有办法从实际文本中删除这些额外信息,但将其显示在定理列表中?

\documentclass[10pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{thmtools}

\begin{document}

\listoftheorems[ignoreall,show={definition}]
\begin{definition}[Vector Space]
....
\end{defintion}
\end{document}

答案1

这个想法是修改的定义\ll@definition,但实际上还需要做更多的工作。

\documentclass{article}
\usepackage{amsthm}
\usepackage{thmtools}

\declaretheorem[
  style=definition,
  name=Definition,
]{innerdefinition}

\makeatletter
\newenvironment{definition}[1][]
 {\def\gonenc@thmt@shortoptarg{#1}\innerdefinition}
 {\endinnerdefinition}
\def\ll@innerdefinition{%
  \protect\numberline{\csname the\thmt@envname\endcsname}%
    \thmt@thmname
  \ifx\@empty\gonenc@thmt@shortoptarg
  \else
    \ (\gonenc@thmt@shortoptarg)%
  \fi}
\makeatother

\begin{document}

\listoftheorems[ignoreall,show={innerdefinition}]

\begin{definition}[Vector Space]
You know what a \emph{vector space} is, don't you?
\end{definition}

\end{document}

在此处输入图片描述

相关内容