I have a theorem given in the body text of a paper, say Theorem 2 with label {theorem-abc}.
I would like to provide the proof of this theorem in the appendix.
1) How do I cross-reference this theorem in the appendix section title?
The section title that I want is "Proof of Theorem 2".
2) How do I restate the theorem again in the aforementioned section?
What I want is "Theorem 2. xxxxxxx", followed by its proof.
ADD: The document class file has following definitions regarding Appendix.
\def\appendix{\par
\section*{APPENDIX}
\setcounter{section}{0}
\setcounter{subsection}{0}
\def\thesection{\Alph{section}} }
I found similar issues here. But it did not solve my Problem 1) either.
MWE: The class file is downloadable here.
\documentclass{vldb}
\usepackage{thmtools, thm-restate}
\usepackage{hyperref}
\declaretheorem{theorem}
\begin{document}
\section{Test Section}
\begin{theorem}
Test theorem
\end{theorem}
\begin{restatable}[Fundamental Theorem of Algebra]{theorem}{fta}
\label{thm:FTA}
Every non-constant single-variable polynomial with complex coefficients has at least one complex root.
\end{restatable}
\appendix
\section[Proof of the Fundamental Theorem of Algebra]{Proof of Theorem~\ref{thm:FTA} (See page~\pageref{thm:FTA})}
\fta*
\begin{proof}
Assume...
\end{proof}
\end{document}
Best Answer
2- You can use the
restatable
environment provided bythmtools
.1- Since the environment generates an anchor, you can use the standard
\label
,\ref
(\pageref
) mechanism for cross-referencing.A complete example:
Now that the question has been edited, and the used document class is known, here's a solution using the
vldb
document class (the link to the class can be found in the question):Explanation:
The problem is that
vldb.cls
sets the section (and also part) titles in upper case and uses the old TeX\uppercase
command to this end; this will produce problems if special commands, such as\ref
, are inside the argument of\section
(or\part
) since\uppercase
don't recognize them as special commands and tretas them in the wrong way (the LaTeX command\MakeUppercase
will also behave bad in this regard). To correct this situation, one can redefine (or patch) the internal command\@sect
, to use\MakeTextUppercase
(from thetextcase
package), instead of the problematic\uppercase
command. In the example code above, the change was signaled with% HERE
.