summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/thmtools/thm-restate.sty
blob: 7d88dd8091a9e9d32c92923b054a1fc921410086 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
%%
%% This is file `thm-restate.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% thm-restate.dtx  (with options: `restate')
%% This is a generated file.
%% 
%% This file is part of the `thmtools' package.
%% The `thmtools' package has the LPPL maintenance status: maintained.
%% Current Maintainer is Ulrich M. Schwarz, ulmi@absatzen.de
%% 
%% Copyright (C) 2008 by Ulrich M. Schwarz.
%% 
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, version 1.3a.
%% This version is obtainable at
%% http://www.latex-project.org/lppl/lppl-1-3a.txt
%% 
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{thm-restate}[2008/03/09 v0.1beta2 thm-restate (ulmi)]

\let\@xa\expandafter
\let\@nx\noexpand
\@ifundefined{c@thmt@dummyctr}{%
  \newcounter{thmt@dummyctr}%
  }{}
\gdef\theHthmt@dummyctr{dummy.\arabic{thmt@dummyctr}}%
\gdef\thethmt@dummyctr{}%
\newtoks\thmt@toks
\long\def\thmt@collect@body#1#2\end#3{%
  \@xa\thmt@toks\@xa{\the\thmt@toks #2}%
  \def\thmttmpa{#3}%\def\thmttmpb{restatable}%
  \ifx\thmttmpa\@currenvir%thmttmpb
    \@xa\@firstoftwo% this is the end of the environment.
  \else
    \@xa\@secondoftwo% go on collecting
  \fi{%
    \@xa#1\@xa{\the\thmt@toks}%
  }{%
    \@xa\thmt@toks\@xa{\the\thmt@toks\end{#3}}%
    \thmt@collect@body{#1}%
  }%
}

\newif\ifthmt@thisistheone
\newenvironment{thmt@restatable}[3][]{%
  \long\def\thmrst@store##1{%
    \@xa\gdef\csname #3\endcsname{%
      \@ifstar{%
        \thmt@thisistheonefalse\csname thmt@stored@#3\endcsname
      }{%
        \thmt@thisistheonetrue\csname thmt@stored@#3\endcsname
      }%
    }%
    \@xa\long\@xa\gdef\csname thmt@stored@#3\@xa\endcsname\@xa{%
      \begingroup
      \ifthmt@thisistheone\else
        \@xa\protected@edef\csname the#2\endcsname{%
          \ifx\@refstar\@undefined\@xa\ref\else\@xa\@refstar\fi{thmt@@#3}}%
        \@xa\let\csname c@#2\endcsname=\c@thmt@dummyctr
        \@xa\let\csname theH#2\endcsname=\theHthmt@dummyctr
        \let\label=\@gobble
      \fi
      %\def\@currenvir{#2}%
      \csname #2\@xa\endcsname\ifx\@nx#1\@nx\else[#1]\fi
      \ifthmt@thisistheone
        \label{thmt@@#3}%
      \fi
      ##1
      \csname end#2\endcsname
      \endgroup
    }%
    \csname #3\@xa\endcsname\ifthmt@thisistheone\else*\fi
    \@xa\end\@xa{\@currenvir}
  }%
  \thmt@collect@body\thmrst@store
}{%
  %% now empty, just used as a marker.
}
\newenvironment{restatable}{%
  \thmt@thisistheonetrue\thmt@restatable
}{%
  \endthmt@restatable
}
\newenvironment{restatable*}{%
  \thmt@thisistheonefalse\thmt@restatable
}{%
  \endthmt@restatable
}
\endinput
%%
%% End of file `thm-restate.sty'.