summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/savesym/savesym.sty
blob: b5691b98777377d7c914fb08d3f1738a0f285471 (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
% The following package was originally pinched (with permission) from
% similar makros in symbols.tex, written by Scott Pakin <pakin@uiuc.edu>.
% The following explanation was also taken from symbols.tex.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% There are a number of symbols (e.g., \Square) that are defined by      %
% multiple packages.  In order to typeset all the variants in this       %
% document, we have to give glyph a unique name.  To do that, we define  %
% \savesymbol{XXX}, which renames a symbol from \XXX to \origXXX, and    %
% \restoresymbols{yyy}{XXX}, which renames \origXXX back to \XXX and     %
% defines a new command, \yyyXXX, which corresponds to the most recently %
% loaded version of \XXX.                                                %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The implementation of \savesymbol and \restoresymbol was changed by
% Heiko Oberdiek <oberdiek@uni-freiburg.de>
% and
% Rolf Niepraschk <rolf.niepraschk@ptb.de>
% in May 2003. Thank you!
%
% Copyright 2003-2013 Juergen Goebel, <savesym-latex@t-online.de>
% distributable under the LPPL
%
% Change history
%
% v1.1 2013/06/01
% first edition on CTAN
%
% v1.2 2013/09/02
% changed \ProvidesPackage{savesymbol} to \ProvidesPackage{savesym}
%    according to package name
% changed mail address of maintainer

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{savesym}[2013/09/02 v1.2 Saves and restores symbols (JG)]

% Save a symbol that we know is going to get redefined.
\newcommand*\savesymbol[1]{%
  \expandafter\let\csname orig#1\expandafter\endcsname\csname#1\endcsname
  \expandafter\let\csname #1\endcsname\relax
}

% Restore a previously saved symbol, and rename the current one.
\newcommand*\restoresymbol[2]{%
  \expandafter\global\expandafter\let\csname#1#2\expandafter\endcsname%
    \csname#2\endcsname
  \expandafter\global\expandafter\let\csname#2\expandafter\endcsname%
    \csname orig#2\endcsname
}

\endinput

% EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF EOF