summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/nag
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-03-25 21:27:48 +0000
committerKarl Berry <karl@freefriends.org>2007-03-25 21:27:48 +0000
commit8fe42a1ed6634a816e74e6ad05b4c891fcc28b1d (patch)
treeea8b289f8f7f095d07aead274aa4b486002c5c4d /Master/texmf-dist/tex/latex/nag
parent9750f56e87a034309cf698fd9daf2fc1432a7449 (diff)
nag update, including nag.sty in runtime (dak mail 23mar07)
git-svn-id: svn://tug.org/texlive/trunk@4083 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/nag')
-rw-r--r--Master/texmf-dist/tex/latex/nag/nag.sty461
1 files changed, 461 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/nag/nag.sty b/Master/texmf-dist/tex/latex/nag/nag.sty
new file mode 100644
index 00000000000..302638cf3a3
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/nag/nag.sty
@@ -0,0 +1,461 @@
+%%
+%% 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@users.sarovar.org
+%%
+%% Copyright (C) 2005, 2006 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/03/20 0.53 warning about old commands (ulmi)]
+\let\@xa\expandafter
+\let\@nx\noexpand
+\newcounter{nag@c}
+\newcounter{nag@sins}
+\newcommand\nag@prepend[2]{%
+ \@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\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
+\newcommand\nag@hackfloat[1]{%
+ \nag@prepend{#1}{%
+ \nag@prepend{endcenter}{%
+ \nag@warn%
+ {\lq center\rq\space environment in #1.\MessageBreak
+ Maybe you want \protect\centering\space instead}
+ }%
+ }
+ \nag@prepend{#1}{%
+ \@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
+ }%
+ \global\nag@haslabelfalse\global\nag@hascaptionfalse
+ }%
+ \nag@prepend{end#1}{%
+ \ifnag@hascaption\relax\else
+ \nag@warn%
+{#1 with no \protect\caption}%
+ \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.
+ \xdef\nag@envstack{%
+ \@nx{%
+ \@xa\@nx\csname #1\endcsname
+ \@nx{\the\inputlineno\@nx}%
+ \@nx}%
+ \@xa\@nx\nag@envstack
+ }%
+}
+\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
+ \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'.