# Is it possible to scale an entire \begin{figure}?

I have a bunch of LaTeX-output from Gnuplot which I would really like to leave alone. Is there an easy way of scaling an entire figure?

Something like

\includegraphics[scale=0.5]{...}


but just for the figure environment?

If it matters, I have

\begin{figure}
\input{plot.tex}
\end{figure}


and the output is from gnuplot used "set terminal latex" and so on.

-

You are looking for the macros

• \resizebox{<h-length>}{<v-length>}{<content>} and
• \scalebox{<h-scale>}[<v-scale>]{<content>}

from the graphics/graphicx packages (→ graphics manual, 3.3 “Scaling”, p. 3).

The \scalebox macro expects ratios like those you’d use in \includegraphics, you you would be using

\begin{figure}
\scalebox{.5}{\input{plot.tex}}
\end{figure}


or, if you rather want to resize the content to a fixed width (or height),

\begin{figure}
\resizebox{.9\linewidth}{!}{\input{plot.tex}}
\end{figure}


where ! means that the content gets resized so that it keeps its aspect ratio.

There exist also a starred version of \resizebox and you can use the lengths \height, \width, \totalheight and \depth to refer to the original sizes of the content; meaning the factor .5 could be used with \resizebox, too:

\begin{figure}
\resizebox{.5\totalheight}{!}{\input{plot.tex}}
\end{figure}

-
Is it possible to do something like this from outside of the figure environment? –  iX3 Oct 7 '13 at 18:55