%PDF- %PDF-
| Direktori : /proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/ncctools/ |
| Current File : //proc/self/root/data/old/usr/share/texlive/texmf-dist/tex/latex/ncctools/dcounter.sty |
%%
%% This is file `dcounter.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% dcounter.dtx (with options: `package')
%%
%% IMPORTANT NOTICE:
%%
%% This file is a generated file from the sources of the `ncctools'
%% bundle.
%%
%% You are not allowed to modify this file.
%%
%% You are allowed to distribute this file if and only if
%% it is distributed with the corresponding source files in
%% the `ncctools' bundle.
%%
%% For the copying and distribution conditions of the source files,
%% see the README file distributed with the ncctools bundle.
%%
%% File: dcounter.dtx Copyright (C) 1998-2005 by Alexander I. Rozhenko
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dcounter}
[2005/04/25 v1.2 Dynamic Counters (NCC)]
\def\DCNT@list{}
\def\DCNT@elist{}
\@onlypreamble\DCNT@elist
\def\DCNT@in#1#2#3{\@tempswafalse
\let\@elt\DCNT@elt #1%
\if@tempswa #2\else #3\fi
}
\def\DCNT@elt#1{\def\DCNT@name{#1}%
\ifx\DCNT@name\DCNT@foo \@tempswatrue \else \DCNT@noteq{#1}\fi
}
\def\DCNT@define#1#2{%
\@ifundefined{c@#2}%
{{\edef\DCNT@foo{#2}\let\DCNT@noteq\@gobble
\DCNT@in\DCNT@list{\newcounter{#2}\DCNT@the{#2}}{}%
}}{}%
#1{#2}%
}
\def\DCNT@the#1{%
\ifx\DCNT@main\@empty
\expandafter\xdef\csname the#1\endcsname
{\noexpand\@arabic \expandafter\noexpand \csname c@#1\endcsname}%
\else
\expandafter\xdef\csname the#1\endcsname
{\expandafter\noexpand \csname the\DCNT@main\endcsname
.\noexpand\@arabic \expandafter\noexpand \csname c@#1\endcsname}%
\@addtoreset{#1}\DCNT@main
\fi
}
\let\DCNT@main\@empty
\newcommand*{\DeclareDynamicCounter}[1]{%
\begingroup
\edef\DCNT@foo{#1}%
\ifx\DCNT@foo\@empty
\PackageError{dcounter}%
{Cannot declare a dynamic counter with empty name}{}%
\fi
\let\DCNT@noteq\@gobble
\@ifundefined{c@#1}%
{\DCNT@in\DCNT@list{}{\@cons\DCNT@list{{#1}}}}%
{\DCNT@in\DCNT@elist{}{\@cons\DCNT@elist{{#1}}}%
\expandafter\global\expandafter\let
\csname the#1\endcsname\@empty}%
\endgroup
}
\@onlypreamble\DeclareDynamicCounter
\newcommand{\countstyle}{\@ifnextchar[{\DCNT@lcstyle}{\DCNT@cstyle}}
\@onlypreamble\countstyle
\def\DCNT@cstyle#1{\edef\DCNT@foo{#1}%
\ifx\DCNT@foo\@empty \else
\DCNT@define\@gobble{#1}%
\@ifundefined{c@#1}{\@nocounterr{#1}}{}%
\fi
\let\DCNT@main\DCNT@foo
}
\@onlypreamble\DCNT@cstyle
\def\DCNT@lcstyle[#1]#2{%
{\DCNT@cstyle{#2}\@for\@tempa:=#1\do{\DynamicCount\@tempa}}%
}
\@onlypreamble\DCNT@lcstyle
\newcommand*{\DynamicCount}[1]{%
\@ifundefined{c@#1}%
{\newcounter{#1}}%
{{\edef\DCNT@foo{#1}\let\DCNT@noteq\DCNT@add
\let\@elt\DCNT@remove \cl@@ckpt
}}%
\DCNT@the{#1}%
}
\@onlypreamble\DynamicCount
\def\DCNT@remove#1{\expandafter\DCNT@remlist\csname cl@#1\endcsname}
\def\DCNT@remlist#1{%
{\let\@tempa\@empty \DCNT@in#1{\global\let#1\@tempa}{}}%
}
\@onlypreamble\DCNT@remove
\@onlypreamble\DCNT@remlist
\def\DCNT@add#1{%
\let\@elt\relax\edef\@tempa{\@tempa\@elt{#1}}\let\@elt\DCNT@elt
}
\@onlypreamble\DCNT@add
\def\DCNT@emu#1{%
\expandafter\ifx\csname the#1\endcsname\@empty
\DynamicCount{#1}\fi
}
\@onlypreamble\DCNT@emu
\AtBeginDocument{%
\ifx\DCNT@list\@empty
\@onlypreamble\DCNT@list
\@onlypreamble\DCNT@in
\@onlypreamble\DCNT@elt
\@onlypreamble\DCNT@define
\@onlypreamble\DCNT@the
\@onlypreamble\DCNT@main
\@onlypreamble\DCNT@name
\@onlypreamble\DCNT@foo
\@onlypreamble\DCNT@noteq
\else
\let\DCNT@setcounter\setcounter
\def\setcounter{\DCNT@define\DCNT@setcounter}
\let\DCNT@addtocounter\addtocounter
\def\addtocounter{\DCNT@define\DCNT@addtocounter}
\fi
{\let\@elt\DCNT@emu \DCNT@elist}%
}
\endinput
%%
%% End of file `dcounter.sty'.