我正在多次重复一个定义,我过去也restatable
这样做。但我希望第一次出现的定义包含一个在下一次出现时不会重复的限定(例如,我希望下面的“(这是限定)”仅在第一次陈述定义时出现,而不是在重新陈述定义时出现)。实现此结果的最简单方法是什么?
\documentclass{article}
\usepackage{thmtools}
\usepackage{thm-restate}
\newtheorem{definition}{Definition}[section]
\begin{document}
\begin{restatable}[Definition]{Definition}{Definition}
\label{def:definition}
This is a definition
(where this is a qualification.)
\end{restatable}
\end{document}
答案1
您使用的关键字序列让我想起了 Major Major Major Major。;-) 请注意,语法非常精确:
- 可选参数是归因;
- 在本例中,第一个强制参数是环境的名称
definition
; - 第二个强制参数是用于重述语句的命令名(不带反斜杠)。
在这里我(滥用)使用管理重述的方式thmtools
:当第一次吸收文本并陈述定理时,条件\ifthmt@thisistheone
设置为真;在重述中将其设置为假。
\documentclass{article}
\usepackage{thmtools}
\usepackage{thm-restate}
\newtheorem{definition}{Definition}[section]
\makeatletter
\newcommand{\qualification}[1]{\ifthmt@thisistheone#1\fi}
\makeatother
\begin{document}
\section{Test}
\begin{restatable}[Test]{definition}{testdef}
\label{def:definition}
This is a definition\qualification{ (where this is a qualification)}.
\end{restatable}
\section{New}
\testdef*
\end{document}