# Multiplication with dimexpr?

(This post bases on: lstaddons: Dynamic linewidth calculation)

Hey everyone, is there a way to do this with a multiplication instead of two additions?

``````\dimexpr\linewidth+\lst@linebgrdsep+\lst@linebgrdsep\relax
``````

-

If `\lst@linebgrdsep` is a register then:

``````\dimexpr\linewidth + 2\lst@linebgrdsep \relax
``````

Hint: Real numbers are also possible.

Otherwise:

``````\dimexpr\linewidth + (\lst@linebgrdsep)*2 \relax
``````

Note, the first factor is the length value, the integer factors follows afterwards in the product. This is limited to integer numbers.

Real numbers can be supported by wrapping the macro `\lst@linebgrdsep` in `\dimexpr`.

``````\dimexpr\linewidth + 1.5\dimexpr\lst@linebgrdsep\relax \relax
``````
-
thanks! the second one works fine for me ;) –  tollo Sep 9 '12 at 15:42

I don't know the definition of `\lst@linebgrdsep`, so I define it here.

``````\newdimen\lst@linebgrdsep
\lst@linebgrdsep.5\textwidth
\edef\x{\the\dimexpr\linewidth+\lst@linebgrdsep*2\relax}
\show\x
``````
-
thanks also for the effort –  tollo Sep 9 '12 at 15:44