Frequently Asked Question List for TeX
Labels are tempting sources of “numbers” — their most common use,
after all, is simply to typeset a number. However, their seeming
simplicity is deceptive; the packages babel
and
hyperref
, at least, fiddle with the definition of
\ref
and \pageref
in ways that make
\setcounter{foo}{\ref{bar}}
(etc.) not work; thus the technique may not be relied upon.
The solution is to use the refcount
package (incidentally,
by the author of hyperref
). The package provides four
commands, all similar to:
\usepackage{refcount}
...
\label{bar}
...
\setcounterref{foo}{bar}
(the other three are \addtocounterref
, \setcounterpageref
and \addtocounterpageref
).
The package also provides a command
\getrefnumber{label-name}
that may be used where a
“number” value is needed. For example:
... \footnote{foo bar ...\label{foofoot}}
...
\footnotemark[\getrefnumber{foofoot}]
which gives you a second footnote mark reference the the footnote.
(There is also a command \getpagerefnumber
, of course).
The commands could be used by one determined not to use
changepage
to determine whether
the current page is odd, but it’s probably no more
trouble to use the fully-developed tool in this case.
FAQ ID: Q-labelcount
Tags: latex–macros