From 588d746c4db3a95ed8ec234bf392c8ca7061fc3e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 3 Dec 2011 23:36:43 +0000 Subject: nag (3dec11) git-svn-id: svn://tug.org/texlive/trunk@24741 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/nag/nag.dtx | 151 ++++++++++++++++++++++++++++- 1 file changed, 149 insertions(+), 2 deletions(-) (limited to 'Master/texmf-dist/source/latex/nag') diff --git a/Master/texmf-dist/source/latex/nag/nag.dtx b/Master/texmf-dist/source/latex/nag/nag.dtx index fe1e71cf510..0c677a254ec 100644 --- a/Master/texmf-dist/source/latex/nag/nag.dtx +++ b/Master/texmf-dist/source/latex/nag/nag.dtx @@ -238,13 +238,17 @@ unsuited for closing the center command above. % adds more compatibility with the caption package.} %\changes{0.621}{2010/04/05}{Bugfix concerning unknown command in math mode} %\changes{0.622}{2010/05/17}{Bugfix: math in captions catcode issue} +%\changes{0.623}{2010/08/15}{Tracing code in experimental: nofiles} +%\changes{0.623}{2010/08/15}{Tracing code in experimental: changing labels} +%\changes{0.623}{2010/08/15}{New error message: no room for a ... and eTeX} +%\changes{0.7}{2011/11/25}{IncompatiblePackages,RecommendPackage,BadFileLoadOrder} % %\GetFileInfo{nag.sty} %\newcommand\pkg[1]{\textsf{#1}} %\title{The \pkg{nag} package\ignorespaces% % \thanks{This document corresponds to \pkg{nag}~\fileversion, % dated~\filedate. Other versions can be found at http://absatzen.de/}} -% \author{Ulrich Michael Schwarz\ignorespaces% +% \author{Dr. Ulrich Michael Schwarz\ignorespaces% % \thanks{\texttt{ulmi@absatzen.de}}} % % \maketitle @@ -614,6 +618,75 @@ unsuited for closing the center command above. \ProvidesFile{nag-experimental.cfg} [2009/07/04 v0.62alpha2 experimental additions to nag (ulmi)] % \end{macrocode} +% +% Patch handling of nofiles: suppressed lines give an +% Info-level message in the logfile now. The message +% doesn't quite give the original line, but a sanitized +% version. Reason: otherwise, we might need to execute +% the setup code \#2. +% +% \begin{macrocode} +\long\def\nag@protected@dontwrite#1#2#3% + {\write\m@ne{}% + \def\nag@line{#3}% + \@onelevel@sanitize\nag@line + \PackageInfo{nag}{% + \string\nofiles\space in effect. + Did not write line \MessageBreak + `\nag@line' + }% + \if@nobreak\ifvmode\nobreak\fi\fi}% + +\if@filesw + \def\nofiles{% + \@fileswfalse + \typeout{No auxiliary output files.^^J}% + \global\let\protected@write=\nag@protected@dontwrite + \let\makeindex\relax + \let\makeglossary\relax} +\else + % already \nofiles. + \global\let\protected@write=\nag@protected@dontwrite +\fi +% \end{macrocode} +% +% Amend ``no space for a new foo'' message to point out +% e\TeX\ alleviates some problems in that area. +% \begin{macrocode} +\gdef\ch@ck#1#2#3{% + \ifnum\count1#1<#2\else + \errhelp{% + eTeX has more counters, dimens, etc., maybe + that will help. + } + \errmessage{No room for a new #3}% +\fi} +% \end{macrocode} +% +% \begin{macrocode} +\def\@testdef #1#2#3{% + \def\reserved@a{#3}% + \expandafter \ifx \csname #1@#2\endcsname\reserved@a + \else + \@tempswatrue + \begingroup + \@onelevel@sanitize\reserved@a + \expandafter\let\expandafter\nag@tmpb\csname #1@#2\endcsname + \ifx\nag@tmpb\relax + \let\nag@tmpb\@empty + \else + \@onelevel@sanitize\nag@tmpb + \fi + \PackageInfo{nag}{% + Label `#2' appears to have changed from\MessageBreak + `\nag@tmpb'\MessageBreak + to `\reserved@a' + }% + \endgroup + \fi} +% \end{macrocode} +% +% % Check if a float that may be positioned b is actually small % enough for bottomfraction etc. % \changes{0.62alpha1}{2008/03/19}{Bigger warning if all float positions fail} @@ -728,7 +801,7 @@ unsuited for closing the center command above. % Identify ourselves. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{nag}[2010/05/17 0.622 warning about old commands (ulmi)] +\ProvidesPackage{nag}[2011/11/25 0.7 warning about old commands (ulmi)] \let\@xa\expandafter \let\@nx\noexpand % \end{macrocode} @@ -830,6 +903,12 @@ unsuited for closing the center command above. \addtocounter{nag@sins}{1}% \PackageWarningNoLine{nag}% } +\providecommand\PackageInfoNoLine[2]{% + \PackageInfo{#1}{#2\@gobble}% +} +\DeclareRobustCommand\nag@suggestNoLine[1]{% + \PackageInfoNoLine{nag}{#1}% +} % \end{macrocode} % \end{macro} % @@ -942,6 +1021,37 @@ unsuited for closing the center command above. } % \end{macrocode} % \end{macro} +% \begin{macro}{\SuggestedPackage} +% Usage: |\SuggestedPackage|\oarg{reason}\marg{package} +% \begin{macrocode} +\newcommand\SuggestedPackage[2][might be useful to you]{% + \AtEndDocument{% + \nag@ifcsname{ver@#2.sty}{% + % Attaboy! + }{% + \nag@suggestNoLine{% + Not loaded: Package #2 #1}% + }% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\IncompatiblePackages} +% Usage: |\IncompatiblePackages|\oarg{reason}\marg{package}\marg{package}\marg{hint} +% \begin{macrocode} +\newcommand\IncompatiblePackages[4][are incompatible]{% + \AtEndDocument{% + \nag@ifcsname{ver@#2.sty}{% + \nag@ifcsname{ver@#3.sty}{% + \nag@warnNoLine{% + Packages #2 and #3 #1.\MessageBreak + #4}% + }{}% + }{} + }% +}% +% \end{macrocode} +% \end{macro} % % \begin{macro}{\ObsoleteClass} % Usage: |\ObsoleteClass|\oarg{reason}\marg{class}\marg{% @@ -965,6 +1075,43 @@ unsuited for closing the center command above. % \end{macrocode} % \end{macro} % +% \begin{macro}{\BadFileLoadOrder} +% \begin{macrocode} +\def\nag@quark{\nag@quark} +\ifx\@listfiles\@undefined + % emulate a silent listfiles + \def\@listfiles#1\@@{}% +\fi +\newcommand\BadFileLoadOrder[3][This might cause problems]{% + \AtEndDocument{% + \nag@ifLoadOrder{#2}{#3}{% + \nag@warnNoLine{% + `#3' loaded after `#2'.\MessageBreak + #1}% + }% + }% +} +\def\nag@ifLoadOrder#1#2{% + \def\nag@tmporder@a ##1#1##2\relax{% + \ifx\nag@quark##2\nag@quark + \noexpand\@gobble + \else + \nag@tmporder@b ##2,#2\relax + \fi + }% + \def\nag@tmporder@b ##1#2##2\relax{% + \ifx\nag@quark##2\nag@quark + \noexpand\@gobble + \else + \noexpand\@firstofone + \fi + }% + \@xa\protected@edef\@xa\nag@tmporder\@xa{\@xa\nag@tmporder@a\@filelist,,#1\relax}% + \nag@tmporder +} +% \end{macrocode} +% \end{macro} +% % \subsection{Common float errors and no-nos.} % % We do the following: -- cgit v1.2.3