我们都知道“restatable”包可以帮助以完全相同的格式重复定理。但是,我需要重述定理,同时在括号中更改其名称。例如,原始定理显示为“定理 1(此处命名)”;后来当我重述它时,我想要“定理 1(重述)”。可以实现吗?
我注意到在“thmtools”的文档中有一个名为“restate”的参数。但是没有足够解释,我不知道如何使用它。
谢谢你的帮助!
答案1
thmtools
restatable
提供一个使用以下语法调用的环境
\begin{restatable}[theorm-title]{envname}{commandtorestate}
<some text>
\end{restatable}
在文档的第 7 页,我们必须遵循以下示例
\documentclass{article}
\usepackage{thmtools, thm-restate}
\declaretheorem{theorem}
\begin{document}
\begin{restatable}[Euclid]{theorem}{firsteuclid}
\label{thm:euclid}%
For every prime $p$, there is a prime $p'>p$.
In particular, the list of primes,
\begin{equation}\label{eq:1}
2,3,45,7,\dots
\end{equation}
is infinite.
\end{restatable}
\firsteuclid*
\vdots
\firsteuclid*
\end{document}
产生以下结果
如果我理解正确的话,以下补丁就是你想要的
\documentclass{article}
\usepackage{thmtools,thm-restate}
\declaretheorem{theorem}
\usepackage{regexpatch}
\makeatletter
\xpatchcmd\thmt@restatable{%
\csname #2\@xa\endcsname\ifx\@nx#1\@nx\else[{#1}]\fi
}{%
\ifthmt@thisistheone
\csname #2\@xa\endcsname\ifx\@nx#1\@nx\else[{#1}]\fi
\else
\csname #2\@xa\endcsname[{Restated}]
\fi}{}{}
\makeatother
\begin{document}
\begin{restatable}[Euclid]{theorem}{firsteuclid}
\label{thm:euclid}%
For every prime $p$, there is a prime $p'>p$.
In particular, the list of primes,
\begin{equation}\label{eq:1}
2,3,45,7,\dots
\end{equation}
is infinite.
\end{restatable}
\firsteuclid*
\vdots
\firsteuclid*
\end{document}