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

GNUPlot generated EPS figure in latex

  1. Nov 3, 2011 #1


    User Avatar

    Dear Forum
    I would like to establish a workflow of how to include .eps graphics generated with gnuplot into Latex documents and it would be great if other could contribute to this.
    At the moment its like this. I plot some data with gnuplot and save it to a .eps file. However, the "white-space" margin to the left and right are too large (so placing to figures next to eachother looks bad).
    First question: What is the smartest way of generating a bounding box that does not include so much white space? Of course, I can edit the eps file, but still, doing it for 5, 10 or more files is impractical.
    Second question: what latex compiler do I need to be able to compile the document with the eps figures? PDFLATEX does not work, it requires PNGs or PDFs. So i need to convert the eps files first to pdfs, which is also impractical to do everytime I need to change a label.
    Third question: How can PNGs be combined with vector graphics in the same latex document?

    So, I really would like to establish this for me now once and for all. Maybe its also usefull to others.

    Thanks for your feedback.
  2. jcsd
  3. Nov 3, 2011 #2


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    Consult for example http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics

    I use the following packages:
    graphicx (for importing raster graphics [I use png and sometimes eps])
    pstricks (for fancy vector graphics).
    You can use the ordinary picture environment if you don't need fancy graphics.

    graphicx can display a specified region of your graphics file, effectively cropping for display without altering the original.

    In a pspicture or picture environment,
    I import the graphics [using includegraphics from graphicx],
    then draw my vector graphics on top of it (for example, adding text, symbols, arrows, or other LaTeX graphics). Some trial and error is involved to do the positioning.

    Scripting (e.g., with perl or python) can help with repetitive tasks.
    I use ImageMagick's identify to help get the pixel dimensions of my graphics files.
    I use a perl script to read its output and have it write the includegraphics command with bounding box dimensions and scaling information.
    I actually use an additional program to send its output to my clipboard so that I can paste it in my editor.
    Last edited: Nov 3, 2011
  4. Nov 3, 2011 #3

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    You shouldn't have to reconvert every time you change the label. The label should not be a part of the graphic. Label the figure with the \caption command:

    Code (Text):
    \caption{Caption that gives meaning to the graph}
  5. Nov 3, 2011 #4


    User Avatar

    @pf mentor: sorry, was not clear here. didnt mean the lable. Rather say the axis or the key/legend of the diagram.
  6. Nov 3, 2011 #5

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    Why is regenerating the pdf impractical every time you change something in the diagram? After all, you regenerate the .eps file every time you change something in the diagram.

    The solution is to script the process. If you are on a Unix derivative, use make. I often use a complex web of programs to create my pdf documents. Some figures are specified as graphviz .dot files that must be processed by dot, others are files that must be processed by gnuplot (and occasionally post-processed by ps2pdf), and so on. Some of those .dot files and gnuplot data files are automatically generated by other programs.

    I would be forced to type that entire mess by hand if I didn't have it all scripted. That would be nigh impossible to get right. Fortunately, it is scripted. It can take a while to get the scripts right, but once you have them right they're pretty much static. And portable. One of the projects I work on has thousands of pages of pdf documentation generated by latex. We would be DOA if it weren't for all the scripting magic used to create those documents.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook