# Simple way to multiply two values

I have a macro to define the scale of my figures:

\newcommand{\myscale}{0.35}


Now I have a figure that needs to be scaled twice as big, so I tried to use something like this:

\begin{figure}[hbt]
\includegraphics[scale=2\myscale]{my-image}
\caption{My Caption}
\label{fig:my-label}
\end{figure}


This results a very big image, as 2\scale expands to 20.35...

I tried/found:

The easiest way (that works for me), is this fp-based implementation:

\begin{figure}[hbt]
\FPeval\calculatedScale{2*\myscale}
\includegraphics[scale=\calculatedScale]{my-image}
\caption{My Caption}
\label{fig:my-label}
\end{figure}


Am I missing something? Is there a more simple/elegant solution? Preferably directly usable with the \includegraphics command without creating the additional \calculatedScale.

The l3fp package allows expandable calculations with floating point numbers. Expandability means that you don't need to store the result in a temporary variable.

\documentclass{article}
\usepackage{graphicx} %

%%%%
% Provide the command \fpeval as a copy of the code-level \fp_eval:n.
\usepackage{expl3}[2012-07-08]
\ExplSyntaxOn
\cs_new_eq:NN \fpeval \fp_eval:n
\ExplSyntaxOff
%%%%

\begin{document}
\newcommand{\myscale}{0.53}
\includegraphics[scale=\fpeval{2*\myscale}]{your-image}
\end{document}

• Your example give this error: Runaway argument? scale=\fpeval {2*\myscale }]{your-image} \end {document} ! Paragraph ended before \Gin@iii was complete.. Is there anything that might went wrong with the \fpeval{} command? – Veger May 22 '13 at 13:44
• @Veger You need the graphicx package for keyval syntax: I've edited the answer. – Joseph Wright May 22 '13 at 13:53
• Sorry about that, I had not tested appropriately. – Bruno Le Floch May 22 '13 at 13:59
• It helps a bit, as I get loads of new errors like Undefined control sequence, Missing number, treated as zero and Illegal unit of measure (pt inserted). With scale=0.7 all errors disappear. Is there another problem with the syntax? – Veger May 22 '13 at 14:13
• @Veger: your expl3 is too old, it does not have \fp_eval:n. – Bruno Le Floch May 22 '13 at 14:23

Maybe simply (second version is with the scaling):

\documentclass{article}
\usepackage{graphicx}

\begin{document}

\includegraphics[scale=0.2]{it}

\scalebox{2}{\includegraphics[scale=0.2]{it}

\end{document}

• This is indeed also a possibility! Although it seems redundant to use two scales/commands. Are there any drawbacks to this method? – Veger May 22 '13 at 14:15