Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have created a counter to count enclosures:

\newcounter{enclosure}{0}

At the bottom of each enclosure I put:

\addtocounter{enclosure}{1}\vfill\hfill\Enclosure \arabic{enclosure}\clearpage

And that works perfectly.

However, at the page before the enclosures I need to put this at the bottom (if there are three enclosures):

ENCLOSURES (3)

I would like to make the value in the parenthesis reflect the last value of the enclosure counter. I've tried \ref and \label but that grabs the section counter, not these counters.

Here is a complete example:

\documentclass[10pt]{article}   
\begin{document}
\newcounter{enclosure}
\noindent
Total Enclosures: \\
\stepcounter{enclosure} Enclosure \arabic{enclosure}\\
\stepcounter{enclosure} Enclosure \arabic{enclosure}\\
\stepcounter{enclosure} Enclosure \arabic{enclosure}\\
\stepcounter{enclosure} Enclosure \arabic{enclosure}\\
Total Enclosures: \arabic{enclosure}
\end{document}

I want the Total Enclosures to be the same at the top as the bottom.

Thanks.

share|improve this question
    
Can you make a minimal working example (MWE)? –  egreg Mar 2 '13 at 15:29
    
@egreg, done. Thanks for the suggestion. –  vy32 Mar 2 '13 at 15:44
    
You'll need to write the information to the .aux file, and then read it. Once implemented, it'll need two runs to get it right. You can see examples of this in a few different packages, for example the lastpage package –  cmhughes Mar 2 '13 at 15:53
    
Right, but is there an easy way to do it? I'd rather just use \ref and \label... –  vy32 Mar 2 '13 at 15:55
add comment

2 Answers

up vote 5 down vote accepted
\addtocounter{enclosure}{1}

or

\stepcounter{enclosure}

which is the same thing, just increment the counter, not make it available to \ref.

Instead use

\refstepcounter{enclosure}

then the counter is incremented in the same way but its value becomes the current reference number so \label will pick it up and you can reference it with \ref.

share|improve this answer
    
Thanks. That's easy! –  vy32 Mar 3 '13 at 3:43
add comment

You can add a \label command at end document:

\documentclass[10pt]{article}

\newcounter{enclosure}
\newcommand{\totalenclosures}{Total Enclosures:~\ref{tot@lencl@sures}}
\newcommand{\enclosure}{%
  \stepcounter{enclosure}%
  Enclosure~\theenclosure
}

\AtEndDocument{%
  \addtocounter{enclosure}{-1}%
  \refstepcounter{enclosure}\label{tot@lencl@sures}%
}

\begin{document}
\noindent\totalenclosures\\
\enclosure\\
\enclosure\\
\enclosure\\
\enclosure\\
\totalenclosures
\end{document}

The strange \label{tot@lencl@sures} is meant to be a string that you don't use in the document. The counter is stepped down and then "refstepped" up to have the correct value available for \label.

It's a bit more complicated if you want that \totalenclosures shows "No Enclosure" if there's none in the document.

\documentclass[10pt]{article}
\usepackage{refcount} % for \getrefnumber
\newcounter{enclosure}
\newcommand{\totalenclosures}{%
  \ifnum\getrefnumber{tot@lencl@sures}=0
    No Enclosure%
  \else
    Total Enclosures:~\ref{tot@lencl@sures}%
  \fi
}
\AtEndDocument{%
  \addtocounter{enclosure}{-1}%
  \refstepcounter{enclosure}\label{tot@lencl@sures}%
}
\newcommand{\enclosure}{%
  \stepcounter{enclosure}%
  Enclosure~\theenclosure
}

\begin{document}
\noindent\totalenclosures\\
\enclosure\\
\enclosure\\
\enclosure\\
\enclosure\\
\totalenclosures
\end{document}
share|improve this answer
    
That's very cool too. Thanks! –  vy32 Mar 3 '13 at 3:44
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.