54

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.

62

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}
  • 14
    Is it possible to do something like this from outside of the figure environment? – iX3 Oct 7 '13 at 18:55
  • 1
    \scalebox also works with .pstex_t files exported from xfig (the .pstex_t file includes --with \includegraphics-- a .pstex file). \resizebox does not work. – kavadias May 29 '16 at 1:11
3

If you're using subfigures that are scaled and want non-subfigure plots to match the others' layout, you can use the subfigure code as well with just one plot:

\begin{figure}[t]
  \centering
  \begin{subfigure}[b]{0.95\textwidth}
     \include{plot.tex}
  \end{subfigure}
  \caption{
    My caption...
  }
  \label{fig:myPlot}
\end{figure}

(In my case, using the other suggested answer left some components of the plot not matching -- maybe axis labels or legend, I forget -- thus my hacky approach.)

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.