I want to multiply a constant from a macro with a deimension using dimexpr. When using real numbers the decimal point and the decimal digits are typeset behind the result and the result is a mutliplication with the floor value of the constant used.

  \the\dimexpr \linewidth*\const\relax \newline
  \the\dimexpr \linewidth*\numexpr\const\relax\relax \newline

The second multiplication is an attempt to use the suggestion from here, to wrap the macro in a sub expression

  • I've answered, but the answer you link to does include more-or-less the same points. This question therefore might be marked as a duplicate.
    – Joseph Wright
    Aug 1, 2013 at 13:07
  • @JosephWright: just mark it as a duplicate, I don't mind. I overlooked it since I skimmed the awnser and read the bottom part, starting Real numbers can be supported by ... thats why I wondered where I went wrong. I am propably used by pgfs math capabilities.
    – ted
    Aug 1, 2013 at 13:12
  • Looking again I think probably not a dupe: the questions have a different focus (the other one on what to do to avoid repeated addition, here about the syntax of multiplication).
    – Joseph Wright
    Aug 1, 2013 at 13:49

1 Answer 1


\dimexpr doesn't allow arbitrary calculations: you need to have things in the correct form. In particular, if you want to multiply a dimension by a decimal then you need to use the form


So you example will work with


while the format


can only be used if \const is an integer.

(The linked answer Multiplication with dimexpr? does mention this limitation.)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .