Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Figures in Latex

  1. Mar 10, 2010 #1
    1. The problem statement, all variables and given/known data

    Is there a way i can attatch matlab graphs onto the Latex file?

    2. Relevant equations



    3. The attempt at a solution

    I copied and pasted it onto paint then saved it as .jpg but i was wondering if theres a way i could attatch the original graph without copying and pasting it onto paint.

    Thank you
     
  2. jcsd
  3. Mar 11, 2010 #2

    LCKurtz

    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    I don't use Matlab. Can it export its graphs as encapsulated PostScript files? It it can, then you can do it like this:

    \usepackage{graphicx}

    \begin{center}
    \includegraphics[width=2.5in,height=2.5in]{yourgraph.eps}
    \end{center}
     
  4. Mar 12, 2010 #3
    Yes, it can
     
  5. Mar 13, 2010 #4
    Sara, here's the magic:

    MATLAB > SVG > PDF > Latex

    1) You need to download "Scalable Vector Graphics (SVG) Export of Figures" from MATLAB Central.

    a. Go to

    Code (Text):
    http://www.mathworks.com/matlabcentral/fileexchange/7401-scalable-vector-graphics-svg-export-of-figures
    b. Extract zip file into the matlab folder you will use as a current directory (i.e. where your M-files are located)

    c. Simply type "plot2svg" in command window or M-file, a GUI will pop up and ask you where to save the figure as an SVG file. Of course, you need a plot( ) command just before this step to generate a figure!

    Note: svgs do not have resolution constraints, like true pdfs.

    2) You need inkscape

    a. Download: www.inkscape.org/

    b. Open the svg file from matlab in inkscape

    c. shift+ctrl+d: opens document properties, you might want to click fit page to selection - this removes any extra space surrounding the figure.

    d. Add any annotations as you wish.

    e. shift+ctrl+s: save as... pdf via Cairo

    3) Latex

    Example of scaled figure (33% of the initial size and lossless!).

    Preamble:

    Code (Text):

    \usepackage{graphics}
     
    Body:

    Code (Text):

    \begin{figure}[!h]
    \centerline{
    {\scalebox{0.33}{\includegraphics{figure.pdf}}
    }
    \caption{Any caption.}
    \label{fig:figlabel}
    \end{figure}
     
    You may wanna look into the subfloat package for having subfigures (a) (b) (c) ... etc within one plot. Example:

    Preamble:

    Code (Text):

    \usepackage{graphics}
    \usepackage{subfig}
     
    Body:

    Code (Text):

    \begin{figure}[!h]
    \centerline{
    \subfloat[Vertical cutlines.]%
    {\scalebox{0.33}{\includegraphics{NMOS_cutlines.pdf}} \label{fig:nmos1athena2dcut}}
    \quad
    \subfloat[Doping profile for cutline \# 1.]%
    {\scalebox{0.33}{\includegraphics{NMOS_cutlines1.pdf}} \label{fig:nmos1athena2dcut1}}
    \vspace{0.5cm}
    }
    \centerline{
    \subfloat[Doping profile for cutline \# 2.]%
    {\scalebox{0.33}{\includegraphics{NMOS_cutlines2.pdf}} \label{fig:nmos1athena2dcut2}}
    \quad
    \subfloat[Doping profile for cutline \# 3.]
    {\scalebox{0.33}{\includegraphics{NMOS_cutlines3.pdf}} \label{fig:nmos1athena2dcut3}}
    \vspace{0.5cm}
    }
    \caption{NMOSFET doping profile at critical locations.}
    \label{fig:nmos2}
    \end{figure}
     
    The code looks ugly, but the final result is amazing!

    I hope this helps.
     
    Last edited: Mar 13, 2010
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook