Mercurial > docs > Development-Case
comparison chngcntr.sty @ 0:662d647b9e94
initial commit
author | meillo@marmaro.de |
---|---|
date | Mon, 14 Jan 2008 06:44:49 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:662d647b9e94 |
---|---|
1 % chngcntr.sty | |
2 % | |
3 % Provides commands to change the resetting of counters. | |
4 % Instructions for use are at the end of this file. | |
5 % | |
6 % author: Peter Wilson (CUA) | |
7 % (now at peter.r.wilson@boeing.com) | |
8 % Released under the Latex Project Public License | |
9 % | |
10 % | |
11 \NeedsTeXFormat{LaTeX2e} | |
12 \ProvidesPackage{chngcntr}[2001/03/30 v1.0 change counter resetting] | |
13 % | |
14 % This package uses David Carlisle's \@removefromreset command as | |
15 % specified in the remreset package available from CTAN as | |
16 % macros/latex/contrib/supported/carlisle/remreset.sty | |
17 % It is \provided here as a convenience to the user, and with | |
18 % David Carlisle's permission. | |
19 % START OF DAVID CARLISLE'S CODE | |
20 \providecommand{\@removefromreset}[2]{{% | |
21 \expandafter\let\csname c@#1\endcsname\@removefromreset | |
22 \def\@elt##1{% | |
23 \expandafter\ifx\csname c@##1\endcsname\@removefromreset | |
24 \else | |
25 \noexpand\@elt{##1}% | |
26 \fi}% | |
27 \expandafter\xdef\csname cl@#2\endcsname{% | |
28 \csname cl@#2\endcsname}}} | |
29 % END OF DAVID CARLISLE'S CODE | |
30 | |
31 %%\@ifbothc@t@s{<package>}{<counter>}{<within>}{<code when both are counters>} | |
32 \newcommand{\@ifbothc@t@s}[4]{% | |
33 \@ifundefined{c@#2}{% counter undefined | |
34 \PackageError{#1}{#2 is not a counter}{\@eha}}% | |
35 {% else counter is defined | |
36 \@ifundefined{c@#3}{% within undefined | |
37 \PackageError{#1}{#3 is not a counter}{\@eha}}% | |
38 {% else both counter and within are defined | |
39 #4}}} | |
40 | |
41 %%\counterwithout*{<counter>}{<within>} | |
42 \newcommand{\counterwithout}{\@ifstar{\c@t@soutstar}{\c@t@sout}} | |
43 \newcommand{\c@t@soutstar}[2]{% | |
44 \@ifbothc@t@s{chngcntr}{#1}{#2}{\@removefromreset{#1}{#2}}} | |
45 \newcommand{\c@t@sout}[2]{% | |
46 \@ifbothc@t@s{chngcntr}{#1}{#2}{\@removefromreset{#1}{#2}% | |
47 \@namedef{the#1}{\arabic{#1}}}} | |
48 | |
49 | |
50 %%\counterwithin*{<counter>}{<within>} | |
51 \newcommand{\counterwithin}{\@ifstar{\c@t@sinstar}{\c@t@sin}} | |
52 \newcommand{\c@t@sinstar}[2]{% | |
53 \@ifbothc@t@s{chngcntr}{#1}{#2}{\@addtoreset{#1}{#2}}} | |
54 \newcommand{\c@t@sin}[2]{% | |
55 \@ifbothc@t@s{chngcntr}{#1}{#2}{\@addtoreset{#1}{#2}% | |
56 \@namedef{the#1}{\@nameuse{the#2}.\arabic{#1}}}} | |
57 | |
58 | |
59 \endinput | |
60 | |
61 %%%%%%%%%%%%%%%%%% | |
62 % USAGE | |
63 %%%%%%%%%%%%%%%%%% | |
64 % | |
65 % In LaTeX, a new counter called, say `ctr', is created by the command | |
66 % \newcounter{ctr}[within]. If the optional within argument is given | |
67 % the the counter `ctr' is reset to zero each time the counter `within' | |
68 % changes. The command \thectr typesets the value of the counter ctr. | |
69 % This is automatically defined by \newcounter and is initialised | |
70 % to typeset arabic numerals. | |
71 % | |
72 %%%%%%%%%%%%%%%%% | |
73 % \counterwithin | |
74 % \counterwithin* | |
75 %%%%%%%%%%%%%%%%% | |
76 % It is sometimes desireable to change a counter that has been defined | |
77 % by \newcounter{ctr} to act as though it had been defined as | |
78 % \newcounter{ctr}[within]. The package provides the command | |
79 % \counterwithin{ctr}{within} that accomplishes this. By default, | |
80 % it also redefines the \thectr command so that it typesets values | |
81 % in the style \thewithin.\arabic{ctr}. The starred version of the | |
82 % command suppresses the redefinition of \thectr | |
83 % (e.g., \counterwithin*{ctr}{within}). | |
84 % | |
85 %%%%%%%%%%%%%%%%%% | |
86 % \counterwithout | |
87 % \counterwithout* | |
88 %%%%%%%%%%%%%%%%%% | |
89 % Likewise, the command \counterwithout{ctr}{within} changes a | |
90 % counter that has been created by \newcounter{ctr}[within] to act | |
91 % as though it had been created by \newcounter{ctr}. By default it | |
92 % also redefines the \thectr command so that it just typesets an arabic | |
93 % numeral. The starred version of the command suppresses the redefinition | |
94 % of \thectr. | |
95 % | |
96 % Any number of \counterwithin{ctr}{...} and \counterwithout{ctr}{...} | |
97 % commands can be issued for a given counter, ctr, if you wish to toggle | |
98 % between the two styles. The current value of ctr is unaffected by | |
99 % \counterwithin and \counterwithout. If you want to change the value | |
100 % after one of these commands, use \setcounter{ctr}{...}, and to change | |
101 % the typeseting style use \renewcommand{\thectr}{...}. | |
102 % | |
103 % | |
104 % Peter W. | |
105 % 2001/03/30 | |
106 % | |
107 |