summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html')
-rw-r--r--Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html74
1 files changed, 74 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html
new file mode 100644
index 00000000000..219c4a1d6ba
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-addtoreset.html
@@ -0,0 +1,74 @@
+<head>
+<title>UK TeX FAQ -- question label addtoreset</title>
+</head><body>
+<h3>Master and slave counters</h3>
+<p/>It&rsquo;s common to have things numbered &ldquo;per chapter&rdquo; (for example, in
+the standard <i>book</i> and <i>report</i> classes, figures, tables
+and footnotes are all numbered thus). The process of resetting is
+done automatically, when the &ldquo;master&rdquo; counter is stepped (when the
+<code>\</code><code>chapter</code> command that starts chapter &lt;<i>n</i>&gt; happens, the
+<code>chapter</code> counter is stepped, and all the dependent counters are set
+to zero).
+<p/>How would you do that for yourself? You might want to number
+algorithms per section, or corollaries per theorem, for example. If
+you&rsquo;re defining these things by hand, you declare the relationship
+when you define the counter in the first place:
+<blockquote>
+<code>\</code><code>newcounter{</code><em>new-name</em><code>}[</code><em>master</em><code>]</code>
+</blockquote><p>
+says that every time counter &lt;<i>master</i>&gt; is stepped, counter
+&lt;<i>new-name</i>&gt; will be reset.
+<p/>But what if you have an uncooperative package, that defines the
+objects for you, but doesn&rsquo;t provide a programmer interface to make
+the counters behave as you want?
+<p/>The <code>\</code><code>newcounter</code> command uses a LaTeX internal command, and you
+can also use it:
+<blockquote>
+<code>\</code><code>@addtoreset{</code><em>new-name</em><code>}{</code><em>master</em><code>}</code>
+</blockquote><p>
+(but remember that it needs to be between <code>\</code><code>makeatletter</code> and
+<code>\</code><code>makeatother</code>, or in a package of your own).
+<p/>The <i>chngcntr</i> package encapsulates the <code>\</code><code>@addtoreset</code>
+command into a command <code>\</code><code>counterwithin</code>. So:
+<blockquote>
+<pre>
+\counterwithin*{corrollary}{theorem}
+</pre>
+</blockquote><p>
+will make the corollary counter slave to theorem counters. The
+command without its asterisk:
+<blockquote>
+<pre>
+\counterwithin{corrollary}{theorem}
+</pre>
+</blockquote><p>
+will do the same, and also redefine <code>\</code><code>thecorollary</code> as
+&lt;<i>theorem number</i>&gt;.&lt;<i>corollary number</i>&gt;, which is a good scheme
+if you ever want to refer to the corollaries &mdash; there are potentially
+many &ldquo;corollary 1&rdquo; in any document, so it&rsquo;s as well to tie its number
+to the counter of the theorem it belongs to. This is true of pretty
+much any such counter-within-another; if you&rsquo;re not using the
+<i>chngcntr</i>, refer to the answer to
+<a href="FAQ-the-commands.html">redefining counters&rsquo; <code>\</code><code>the-</code>commands</a> for
+the necessary techniques.
+<p/>Note that the technique doesn&rsquo;t work if the master counter is <code>page</code>,
+the number of the current page. The <code>page</code> counter is stepped deep
+inside the output routine, which usually gets called some time after
+the text for the new page has started to appear: so special
+techniques are required to deal with that. One special case is dealt
+with elsewhere: <a href="FAQ-footnpp.html">footnotes numbered per page</a>. One
+of the techniques described there, using package <i>perpage</i>,
+may be applied to any counter. The command:
+<blockquote>
+<code>\</code><code>MakePerPage{</code><em>counter</em><code>}</code>
+</blockquote><p>
+will cause &lt;<i>counter</i>&gt; to be reset for each page. The package uses
+a label-like mechanism, and may require more than one run of LaTeX
+to stabilise counter values &mdash; LaTeX will generate the usual
+warnings about labels changing.
+<dl>
+<dt><tt><i>chngcntr.sty</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/misc/chngcntr.sty">macros/latex/contrib/misc/chngcntr.sty</a>
+<dt><tt><i>perpage.sty</i></tt><dd>Distributed as part <a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/bigfoot.zip">macros/latex/contrib/bigfoot</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/bigfoot.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/contrib/bigfoot/">browse</a>)
+</dl>
+<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=addtoreset</a>
+</body>