1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
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