%% %% This is file `nag.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% nag.dtx (with options: `nag') %% This is a generated file. %% %% This file is part of the `nag' package. %% The `nag' package has the LPPL maintenance status: maintained. %% Current Maintainer is Ulrich M. Schwarz, ulmi@absatzen.de %% %% Copyright (C) 2005-7 by Ulrich M. Schwarz. %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either %% version 1.3a of this license or (at your option) any later %% version. The latest version of this license is in: %% http://www.latex-project.org/lppl.txt %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{nag}[2007/06/10 0.60 warning about old commands (ulmi)] \let\@xa\expandafter \let\@nx\noexpand \newcounter{nag@c} \newcounter{nag@sins} \newcommand\nag@ifundefined[1]{% \begingroup \@ifundefined{#1}{\endgroup\@firstoftwo}{\endgroup\@secondoftwo}% } \newcommand\nag@prepend[2]{% \nag@ifundefined{#1}{% % if it doesn't exist, don't do anything. \PackageInfo{nag}{% Command \@backslashchar#1\space not defined, skipping amendment% }% }{% \@xa\let \csname nag@@#1@\thenag@c\@xa\endcsname \csname #1\endcsname \@xa\nag@pr@p@nd\csname #1\@xa\endcsname \csname nag@@#1@\thenag@c\endcsname{#2}% \stepcounter{nag@c}% }% } \newcommand\nag@pr@p@nd[3]{% \def#1{#3#2}% } \newcommand\nag@warn{% \addtocounter{nag@sins}{1}% \PackageWarning{nag}% } \newcommand\nag@warnNoLine{% \addtocounter{nag@sins}{1}% \PackageWarningNoLine{nag}% } \newcommand\ObsoleteCS[3][obsolete]{% \AtBeginDocument{% \nag@prepend{#2}{% \nag@warn{% Command \@backslashchar#2 is #1. \MessageBreak Use #3 instead}% }% }% } \newcommand\ObsoleteEnv[3][obsolete]{% \AtBeginDocument{% \nag@prepend{#2}{% \nag@warn{% Environment #2 is #1. \MessageBreak Use #3 instead}% }% }% } \newcommand\nag@ifcsname[3]{% \begingroup\@ifundefined{#1}{#3}{#2}\endgroup } \nag@ifcsname{ifcsname}{% \renewcommand*\nag@ifcsname[3]{% \begingroup % assume it won't be there. \let\tmp@a\@secondoftwo \ifcsname #1\endcsname % It still might be relax from some other test. Thanks to J\"org % Sommer for finding this bug. \expandafter\ifx\csname #1\endcsname\relax \else % it's there after all \let\tmp@a\@firstoftwo \fi \fi \tmp@a{#2}{#3}% \endgroup }% \global\let\nag@ifcsname\nag@ifcsname }{} \newcommand\ObsoletePackage[3][obsolete]{% \AtEndDocument{% \nag@ifcsname{ver@#2.sty}{% \nag@warnNoLine{% Package #2 is #1.\MessageBreak Use #3 instead}% }{}% }% } \newcommand\ObsoleteClass[3][obsolete]{% \AtEndDocument{% \nag@ifcsname{ver@#2.cls}{% \nag@warnNoLine{% Class #2 is #1.\MessageBreak Use #3 instead}% }{}% }% } \newif\ifnag@haslabel \newif\ifnag@hascaption\nag@hascaptiontrue \newcommand\nag@hackfloat[1]{% \nag@prepend{#1}{% \global\nag@haslabelfalse\global\nag@hascaptionfalse }% \nag@prepend{end#1}{% \ifnag@hascaption\relax\else \nag@warn% {#1 with no \protect\caption}% \fi % labels outside floats shouldn't complain: \global\nag@hascaptiontrue % (we do this always because it needs to be global) }% } \AtBeginDocument{% \g@addto@macro{\@preamblecmds}{% \@for\labelprovider:=\nag@labels\do{% \ifx\labelprovider\@empty\else \nag@prepend{\labelprovider}% {\nag@captioncheck\nag@haslabeltrue}% \fi }% \@for\captionprovider:=\nag@captions\do{% \ifx\captionprovider\@empty\else \nag@prepend{\captionprovider}{\global\nag@hascaptiontrue}% \fi }% }% } \newcommand\nag@captioncheck{% \ifnag@hascaption\else \nag@warn{\protect\label\space in float, but not after \protect\caption}% \fi } \def\nag@floats{} \def\nag@labels{} \def\nag@captions{} \newcommand\nag@floatsetup{% \@for\flo:=\nag@floats\do{% \ifx\flo\@empty\else \@xa\nag@hackfloat\@xa{\flo}% \fi }% } \AtBeginDocument{% \nag@floatsetup } \AtBeginDocument{% \AtEndDocument{% \ifnum\value{nag@sins}>0% \PackageWarningNoLine{nag}{\arabic{nag@sins} complaints in total}% \else \typeout{No complaints by nag.}% \fi }% } \DeclareRobustCommand\nag@ifCurrentEnvironment[3]{% \bgroup \def\tmp@a{#1}% \ifx\@currenvir\tmp@a #2% \else #3% \fi \egroup } \newcommand\NotAnEnvironment[1]{% \AtBeginDocument{% \nag@prepend{#1}{% \nag@ifCurrentEnvironment{#1}{% \nag@warn{% There is no environment ``#1''.\MessageBreak Maybe you want a grouped \@backslashchar#1 }% }{% OK case. }% }% }% } \newcommand\nag@envstack{\relax} \DeclareRobustCommand\nag@beginenv[1]{% % push a begin-entry onto the stack. Form is % |{\foo{lineno}}| for environment foo. \bgroup \@xa\toks@\@xa{\nag@envstack}% \xdef\nag@envstack{% \@nx{% \@xa\@nx\csname #1\endcsname \@nx{\the\inputlineno\@nx}% \@nx}% \the\toks@ }% \egroup } \DeclareRobustCommand\nag@endenv[1]{% % extract the first entry. \@xa\nag@end@nv\nag@envstack\@nil #1\@nil } \def\nag@end@nv#1#2\@nil #3\@nil{% \def\tmp@a{#1}% \def\tmp@b{\relax}% \ifx\tmp@a\tmp@b % This was the end-of-stack flag. \nag@warn{``\@backslashchar end#3'' without matching ``\@backslashchar #3''} \else % We may assume this is a proper entry. See if the begin-token on % the stack matches what |\nag@endenv| was passed. \@xa\ifx\csname #3\@xa\endcsname\@firstoftwo #1% %OK case, just pop the entry. \gdef\nag@envstack{#2}% \else % error case \nag@warn{% You cannot close ``\@xa\string\@firstoftwo #1'' on line \@secondoftwo #1 with ``\@backslashchar end#3''% }% % leave it on the stack. Some case of misnesting will always cause % horrible amounts of follow-up errors. Also, scare them! \fi \fi } \AtEndDocument{% \@xa\@tfor\@xa\looseends\@xa:\@xa=\nag@envstack\do{% \@xa\ifx\looseends\relax\else \nag@warnNoLine{Unmatched ``\@xa\@xa\@xa\string\@xa\@firstoftwo\looseends'' command on line \@xa\@xa\@xa\string\@xa\@secondoftwo\looseends% }% \fi }% } \newcommand\NotASwitch[1]{% \AtBeginDocument{% \nag@prepend{#1}{% \nag@beginenv{#1}% }% \nag@prepend{end#1}{% \nag@endenv{#1}% }% }% } \AtBeginDocument{% \nag@ifcsname{ver@subfig.sty}{% \PackageInfo{nag}{Attempting subfig hack\@gobble}% \nag@maybehacksubfig }{% }% } \def\nag@maybehacksubfig{% % % of course, i need to touch the single longest definition in % subfig.sty, to amend one single command... % % The definition is taken from subfig.sty 1.3 dated 2005/07/05 by % S.D. Chochran, where it is called sf@@@subfloat, and appears here % under the conditions of section 6 of the LPPL 1.3. The subfig % package is available on a CTAN mirror near you. % \long\def\nag@@original@@sf@@@subfloat##1[##2][##3]##4{% \@ifundefined{FBsc@max}{% }{% \FB@readaux{\let\FBsuboheight\relax}% }% \@tempcnta=\@ne \if@minipage \@tempcnta=\z@ \else\ifdim \lastskip=\z@ \else \@tempcnta=\tw@ \fi\fi \ifmaincaptiontop \sf@top=\sf@nearskip \sf@bottom=\sf@farskip \else \sf@top=\sf@farskip \sf@bottom=\sf@nearskip \fi \leavevmode \setbox\@tempboxa \hbox{% ##4}% \@tempdima=\wd\@tempboxa \@ifundefined{FBsc@max}{% }{% \global\advance\Xhsize-\wd\@tempboxa \dimen@=\ht\@tempboxa \advance\dimen@\dp\@tempboxa \ifdim\dimen@>\FBso@max \global\FBso@max\dimen@ \fi }% \vtop\bgroup \vbox\bgroup \ifcase\@tempcnta \@minipagefalse \or \vskip\sf@top \or \ifdim \lastskip=\z@ \else \@tempskipb\sf@top\relax\@xaddvskip \fi \fi \sf@ifpositiontop{% \ifx \@empty##3\relax \else \sf@subcaption{##1}{##2}{##3}% \vskip\sf@capskip \vskip\sf@captopadj \fi\egroup \hrule width0pt height0pt depth0pt \box\@tempboxa }{% \@ifundefined{FBsc@max}{% \box\@tempboxa }{% \ifx\FBsuboheight\relax \box\@tempboxa \else \vbox to \FBsuboheight{\FBafil\box\@tempboxa\FBbfil}% \fi}% \egroup \ifx \@empty##3\relax \else \vskip\sf@capskip \hrule width0pt height0pt depth0pt \sf@subcaption{##1}{##2}{##3}% \fi }% \vskip\sf@bottom \egroup \@ifundefined{FBsc@max}{% }{% \addtocounter{FRobj}{-1}% \ifnum\c@FRobj=0\else \subfloatrowsep \fi }% \ifmaincaptiontop\else \global\advance\@nameuse{c@\@captype}\m@ne \fi \endgroup\ignorespaces}% % \expandafter\ifx\csname sf@@@subfloat\endcsname\nag@@original@@sf@@@subfloat % yup, that's it. \PackageInfo{nag}{OK, equivalent to subfig 1.3, redefining \@backslashchar sf@@@subfloat\@gobble}% \global\long\def\sf@@@subfloat##1[##2][##3]##4{% \@ifundefined{FBsc@max}{% }{% \FB@readaux{\let\FBsuboheight\relax}% }% \@tempcnta=\@ne \if@minipage \@tempcnta=\z@ \else\ifdim \lastskip=\z@ \else \@tempcnta=\tw@ \fi\fi \ifmaincaptiontop \sf@top=\sf@nearskip \sf@bottom=\sf@farskip \else \sf@top=\sf@farskip \sf@bottom=\sf@nearskip \fi \leavevmode \setbox\@tempboxa \hbox{% %% ulmi: new 2007/02/25: #4 may contain label command \csname nag@hascaptiontrue\endcsname %% and that was it. ##4}% \@tempdima=\wd\@tempboxa \@ifundefined{FBsc@max}{% }{% \global\advance\Xhsize-\wd\@tempboxa \dimen@=\ht\@tempboxa \advance\dimen@\dp\@tempboxa \ifdim\dimen@>\FBso@max \global\FBso@max\dimen@ \fi }% \vtop\bgroup %% ulmi: new 2007/05/10: #2, #3 may contain label command \csname nag@hascaptiontrue\endcsname %% and that was it. \vbox\bgroup \ifcase\@tempcnta \@minipagefalse \or \vskip\sf@top \or \ifdim \lastskip=\z@ \else \@tempskipb\sf@top\relax\@xaddvskip \fi \fi \sf@ifpositiontop{% \ifx \@empty##3\relax \else \sf@subcaption{##1}{##2}{##3}% \vskip\sf@capskip \vskip\sf@captopadj \fi\egroup \hrule width0pt height0pt depth0pt \box\@tempboxa }{% \@ifundefined{FBsc@max}{% \box\@tempboxa }{% \ifx\FBsuboheight\relax \box\@tempboxa \else \vbox to \FBsuboheight{\FBafil\box\@tempboxa\FBbfil}% \fi}% \egroup \ifx \@empty##3\relax \else \vskip\sf@capskip \hrule width0pt height0pt depth0pt \sf@subcaption{##1}{##2}{##3}% \fi }% \vskip\sf@bottom \egroup \@ifundefined{FBsc@max}{% }{% \addtocounter{FRobj}{-1}% \ifnum\c@FRobj=0\else \subfloatrowsep \fi }% \ifmaincaptiontop\else \global\advance\@nameuse{c@\@captype}\m@ne \fi \endgroup\ignorespaces}% \else \PackageInfo{nag}{Not redefining sf@@@subfloat, it looks odd\@gobble} \fi } \newcommand*\NagDeclareFloat[1]{\g@addto@macro\nag@floats{,#1}} \DeclareOption*{% \InputIfFileExists{nag-\CurrentOption.cfg}{% \PackageInfo{nag}{% Loaded nag-\CurrentOption.cfg } }{% \InputIfFileExists{\CurrentOption.nag}{% \PackageWarningNoLine{nag}{% Loaded old-style config file \CurrentOption.nag.\MessageBreak Consider renaming the file to nag-\CurrentOption.cfg }% }{% \PackageWarningNoLine{nag}{Required ruleset \CurrentOption, and it wasn't there} }% } } \ProcessOptions* %%X Local Variables: %%X mode: latex %%X End: \endinput %% %% End of file `nag.sty'.