What is your favorite way to export figure for use in LaTeX?

Matlab's standard plotting tools are sufficient for visualizing intermediate results, but there are many reasons why you can't simply export a eps or pdf to be included in a LaTeX generated report or publication. I've tried a several options varying from explicitly setting the fonts to using export tools such as matlab2tikz; but what tools/ methods do you find the most effective at easily making a beautiful figure without extensive effort?

2 Comments

Most effective? Hand it over to a grad student or PDF (Post-Doctoral Fellow) ;-)
That sounds like a great idea, can I borrow one of yours?

Sign in to comment.

Answers (4)

I found this useful:
https://dgleich.github.io/hq-matlab-figs/
width = 3; % Width in inches
height = 3; % Height in inches
set(gcf,'InvertHardcopy','on');
set(gcf,'PaperUnits', 'inches');
papersize = get(gcf, 'PaperSize');
left = (papersize(1)- width)/2;
bottom = (papersize(2)- height)/2;
myfiguresize = [left, bottom, width, height];
set(gcf,'PaperPosition', myfiguresize);
% Save the file as PNG
print('r9','-dpng','-r300');
print('r9','-depsc2','-r300');
I create the graph or image in a MATLAB figure on screen exactly as I want it to appear in the paper. Then I save the figure as either a PDF or a PNG using export_fig. Finally I insert the output in latex using includegraphic and compile using pdflatex.
Export_fig respects figure dimensions, crops whitespace, embeds fonts and saves bitmaps at high quality, so the results look good.

1 Comment

Oliver's export_fig, mentioned in the FAQ, is certainly a very popular, if not the most popular, way to do it. http://matlab.wikia.com/wiki/FAQ#How_do_I_save_my_figure.2C_axes.2C_or_image.3F_I.27m_having_trouble_with_the_built_in_MATLAB_functions.

Sign in to comment.

While beauty is subjective, I don't think that it is possible to produce a beautiful figure without extensive effort. Even with extensive effort, I do not think that MATLAB can produce a beautiful figure. Now quick, publishable and clear, then you want to use export_fig.
Matlab-generated PDF graph
If you have saved your Matlab-created graph as a pdf file, then you can use it in your Latex document using:
\includegraphics[width=\textwidth,height=\textheight,scale=1]{path/to/figure.pdf}
You may change the size of your figure by tuning the options inside the braces to fit it to your space. Then compile your whole document:
pdflatex -interaction=nonstopmode -src main.tex
Matlab-generated EPS graph
If you have saved your Matlab-created graph as an eps file, then the same procedure applies for including the figure. For compilation use:
latex -interaction=nonstopmode -src main.pdf
dvips main.dvi
ps2pdf main.ps
If you are creating a presentation using beamer class, see beamer's documentation, chapter Creating PostScripts.

Categories

Find more on Printing and Saving in Help Center and File Exchange

Asked:

on 13 Oct 2011

Edited:

on 12 Jun 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!