-
Notifications
You must be signed in to change notification settings - Fork 0
/
checklab.tex
41 lines (41 loc) · 1.5 KB
/
checklab.tex
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
% Making those `Label(s) have changed\dots' messages more explicit
%
% The \LaTeX{} kernel produces the messages when something, while the
% |.aux| file is being scanned (after the \cs{AtEndDocument} tokens
% have been executed), sets the \cs{if@tempswa} switch with the
% command \cs{@tempswatrue}.
%
% (This fact can be used by packages, such as my |footmisc.sty|, to
% piggy-back on the message; but it's nice in that circumstance and
% others to be sure where the message is coming from.)
%
% This is a jiffy patch to the kernel so that it produces a
% (\cs{typeout}) message for each label \emph{it} thinks has changed.
%
% Usage: Incorporate this code into a package or class file, or
% \input this file from a package or class file, or
% \makeatletter \input{checklab} \makeatother in your document
% preamble
%
% This software jiffy is placed in the public domain. Do with it as
% you wish, though I have to say I would prefer you not to claim it
% as your own (otoh, it's the product of a twisted mind, so probably
% not an attractive thing to claim).
%
% Robin Fairbairns ([email protected])
% Produced in this form 1999/01/15
%
\def\@testdef #1#2#3{%
\def\reserved@a{#3}%
\expandafter \ifx \csname #1@#2\endcsname \reserved@a
\else
\@tempswatrue
\typeout{label change: #1@#2 was
\expandafter \ifx \csname #1@#2\endcsname \relax
unset
\else
\csname#1@#2\endcsname\space
\fi
now #3}%
\fi
}