Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Suppose I have some theorem in the paper

Section 1

Theorem 1.1. Let ...

And then later in the paper I want to recall the theorem by reprinting it

Section 4

We recall Theorem 1.1:

Theorem 1.1. Let ...

What's the proper way to do this?

share|improve this question
1  
Welcome to TeX.SE. I would just store the contents of the theorem in a macro and re-use the macro for the initial and reuse. –  Peter Grill Apr 9 '12 at 15:05
3  
Interesting question! However, I have serious doubts whether this is actually a good idea. A traditional \reference might actually be better. As a reader, if I saw Theorem 1.1 in two places of a book, I'd think it's a mistake, and after seeing that this is actually the same theorem, I might feel "cheated" by the author... –  mbork Apr 9 '12 at 15:29
    
@mbork What's the problem, he explicitly says: "We recall Theorem 1.1", why should someone think it is a mistake. Think about a case when the Theorem is in the body of the paper and the proof of the theorem is in the appendix. So before the proof you want to recall the exact statement of the theorem once again. Would this this confuse somebody? –  jutky Oct 21 at 17:51

2 Answers 2

up vote 32 down vote accepted

The thm-restate package which is part of thmtools offers a restatable environment. In the following example, I also use hyperref and cleveref (its \cref macro automatically adds the correct theorem type). See section 1.4 of the thmtools manual for details.

\documentclass{article}

\usepackage{thmtools}
\usepackage{thm-restate}

\usepackage{hyperref}

\usepackage{cleveref}

\declaretheorem[name=Theorem,numberwithin=section]{thm}

\begin{document}

\section{First}

\begin{restatable}[Goldbach's conjecture]{thm}{goldbach}
\label{thm:goldbach}
Every even integer greater than 2 can be expressed as the sum of two primes.
\end{restatable}

\section{Second}

We recall \cref{thm:goldbach}:

\goldbach*

\end{document}

enter image description here

share|improve this answer
    
I can't comment yet, so hopefully this will change to one. I got lots of errors when I tried to use thm-restate just now. The problem seemed to be that it didn't like being in the same \usepackage command as other packages. It also likes to be placed after amsthm. –  Jessica B Oct 14 '13 at 16:49
1  
I had trouble implementing something similar in my own document, so I tried running literally your document. The following happened: LaTeX Warning: \Cref reference format for label type 'thm' undefined on input l ine 23. ! Undefined control sequence. \HyRef@StarSetRef ...Hy@safe@activestrue \edef \x {#1}\@onelevel@sanitize \x... l.25 \goldbach*. How can I circumnavigate this issue? –  jdc Aug 19 at 0:21
    
@jdc Still works for me. Try to delete all auxiliary files and compile several times. –  lockstep Aug 19 at 5:32

If you need it only once or twice or so, you can locally in the repeating: 1) tweak theorem label printing, 2) add -1 to the theorem counter since it gets increased by the repeated theorem. The code:

\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}[section]
\begin{document}

\section{First}

\begin{theorem}\label{mythm}
Let $x$ ...
\end{theorem}

\section{Second}

\begin{theorem}
This should be two.one
\end{theorem}

Let us recall the theorem from the first section.

\begingroup
\def\thetheorem{\ref{mythm}}
\begin{theorem}
Let $x$ ...
\end{theorem}
\addtocounter{theorem}{-1}
\endgroup

\begin{theorem}
This should be two.two
\end{theorem}

\end{document}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.