diff options
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.html | 74 |
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’s common to have things numbered “per chapter” (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 “master” counter is stepped (when the +<code>\</code><code>chapter</code> command that starts chapter <<i>n</i>> 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’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 <<i>master</i>> is stepped, counter +<<i>new-name</i>> will be reset. +<p/>But what if you have an uncooperative package, that defines the +objects for you, but doesn’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 +<<i>theorem number</i>>.<<i>corollary number</i>>, which is a good scheme +if you ever want to refer to the corollaries — there are potentially +many “corollary 1” in any document, so it’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’re not using the +<i>chngcntr</i>, refer to the answer to +<a href="FAQ-the-commands.html">redefining counters’ <code>\</code><code>the-</code>commands</a> for +the necessary techniques. +<p/>Note that the technique doesn’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 <<i>counter</i>> 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 — 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> |