17

The title says it. Lets have to counters:

\newcounter{myCount}
\newcounter{anotherCount}

I set myCount to some value for example 10

\setcounter{myCount}{10}

How do I set counter anotherCount to double the value of myCount? I have tried things like

\setcounter{anotherCount}{2\value{myCount}}

and

\setcounter{anotherCount}{2\themyCount}

but non of this works.

  • \multiply\myCount by 2 — this is not a length! – Eddy_Em Jan 15 '13 at 8:09
18

The 'official' LaTeX way (using only things documented in LaTeX: A Document Preparation System) is to use \addtocounter, as mentioned in a comment

\documentclass{article}
\newcounter{A}
\newcounter{B}
\begin{document}
\setcounter{A}{3}
\setcounter{B}{\value{A}}
\addtocounter{B}{\value{A}}

\arabic{A} and \arabic{B}
\end{document}

Loading the calc package (part of the core LaTeX2e system) allows

\documentclass{article}
\usepackage{calc}

\newcounter{A}
\newcounter{B}
\begin{document}
\setcounter{A}{3}
\setcounter{B}{2*\value{A}}

\arabic{A} and \arabic{B}
\end{document}

Of course, you can also use lower-level TeX or e-TeX constructs, as covered in the other answers.

| improve this answer | |
  • the "official LaTeX" way was defined before eTeX was developed with its \numexpr and \dimexpr – user2478 Jan 15 '13 at 8:38
  • @Herbert Of course. The \numexpr primitive does not have LaTeX syntax, so really doesn't fit 'properly'. One could of course redefine \setcounter to use e-TeX, in a similar way to the way that calc alters the definitions to allow expressions in a very different way. (Or you could use Heiko's intcalc package for the same thing without requiring e-TeX.) – Joseph Wright Jan 15 '13 at 8:41
  • For me calc syntax is simplest and looks consistent with LaTeX counters. – Rasto Jan 15 '13 at 10:04
11
\documentclass{minimal}
\begin{document}
\newcounter{A}    \newcounter{B}
\setcounter{A}{3} \setcounter{B}{\numexpr\theA*2\relax}

\theA\ and \theB

\end{document}
| improve this answer | |
5

Don't forget that counter isn't same as length. Use commands \advance, \divide and \multiply to work with counters.

For example, this code will compute value of typographics sheets (run it in the end of document):

\newcount{\podp}
\newcount{\podpfr}
\podp=\c@page
\podpfr=\c@page
\divide\podp by 16
\multiply\podp by 100
\multiply\podpfr by 100
\divide\podpfr by 16
\advance\podpfr by -\podp
\divide\podp by 100
…
\hbox to 0pt{Формат $60\!\times\!84\;1/16$}\hfil Усл.печ.л.~%
{\the\podp.\ifnum\podpfr<10 0\fi\the\podpfr}\hfil
| improve this answer | |
  • LaTeX is just a set of macros on TeX, so I see nothing awful to use tex in latex. – Eddy_Em Jan 15 '13 at 8:44
  • In simple things like this there's better to use tex commands whether to use one more latex package that do such simple work. If such thins meets frequently in document, there would be better to choose latex-way. – Eddy_Em Jan 15 '13 at 9:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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