[OS X TeX] Re: "! LaTeX Error: No counter 'a' defined."
John B. Thoo
jthoo at yccd.edu
Wed Dec 22 19:57:42 EST 2010
Thanks, Peter D and Martin C, for your replies.
On Dec 22, 2010, at 12:00 PM, <macosx-tex-request at email.esm.psu.edu> <macosx-tex-request at email.esm.psu.edu> wrote:
> ------------------------------
>
> Message: 2
> Date: Wed, 22 Dec 2010 11:05:16 +0100
> From: Peter Dyballa <Peter_Dyballa at Web.DE>
>
> I think lshort describes the use of the \include* statements. Cross
> references can be "kept intact" with latexmk, I think...
Thanks for the reference lshort [1]. The document [1, p. 14] seems to indicate that I'm using \include and \includeonly correctly. Please let me know if I'm misreading it.
[1] <http://www.ctan.org/tex-archive/info/lshort/english/lshort.pdf>
> ------------------------------
>
> Message: 3
> Date: Wed, 22 Dec 2010 14:39:42 +0100
> From: Martin Costabel <costabel at wanadoo.fr>
>
> I think you exposed a fundamental bug in LaTeX. It is so basic that I
> suspect it will be called a "feature", and it is probably well known:
>
> You cannot use \newcounter in files that are included using \include.
>
> The workaround is to remove the \newcounter command from the included
> file and place it into the master file. In your case, remove (or
> comment) the lines
>
> \newcounter{a}
> \newcounter{b}
> \newcounter{temp}
>
> in the file ch_numthry.tex and place them in the master file just before
> the line
>
> \include{ch_numthry}
>
> This will typeset identically to what you (wanted to) get, without the
> error.
>
> The reason for the breakage is that latex writes all \setcounter
> commands into the *.aux files. This is reasonable, in principle. But
> when you use \includeonly, only the *.aux files of the not included
> files are read, so the \setcounter commands are read, without the
> corresponding \newcounter commands, which are not in the *.aux file: Crash!
Your fix works marvelously. Thanks very much.
> Here is a really minimal example:
>
> %%%% file counterbug.tex, this is the master file
> %%%% typeset, then uncomment the \includeonly line to see the bug
> \documentclass{book}
> %\includeonly{null}
> \begin{document}
> \include{counter}
> \include{null}
> \end{document}
> %%%% end counterbug.tex
>
> %%%% file counter.tex
> \newcounter{a}
> \setcounter{a}{0}
> %%%% end counter.tex
Wow, that is a very minimal example! :-)
Thanks again, everyone.
---John.
-----------------------------------------------------------------------
Pascal's wager
<http://www.catholic.com/thisrock/2003/0303fea1.asp>
More information about the MacOSX-TeX
mailing list