Exporting figure to pdf: legend text extends beyond frame etc.

15 views (last 30 days)
I would like to export a figure exactly as seen when opened in Matlab. However, in the resulting pdf file the legend text extends beyond the frame and the title partly overlaps with itself. These issues do not occur when exporting to png.
clc;close all;
for i = 1:1%length(d)
%saveas(gca, strrep(fn,'fig','pdf'), 'pdf');
close all
Any help would be appreciated, since I already tried several suggestions from the forum, but none worked so far.

Accepted Answer

Richard Quist
Richard Quist on 23 May 2016
I think the issue you're seeing is because the font used in the generated PDF file is not the same as the font specified in the figure.
In the example figure you posted, both the title and the legend are using Calibri as the font. The exported PDF file uses Courier instead.
MATLAB supports a small set of fonts when exporting to PDF and PostScript, and Calibri is not one of the fonts that is supported. If the font isn't supported a substitution occurs when exporting, and in this case Courier is being used.
If you set the axes and legend text to use Helvetica instead you should see better results.
% this assumes ax and leg are handles to the axes and legend objects:
set(ax, 'FontName', 'Helvetica');
set(leg, 'FontName, 'Helvetica');
  1 Comment
Brendan Finch
Brendan Finch on 23 May 2016
Thanks, that worked
This might be a bit overkill, but it's good enough:
clc;close all;
for i = 1:length(d)
set(gca,'FontName', 'Helvetica')
axes = findobj(gcf,'type','axes')
set(findall(axes,'type','text'),'FontName', 'Helvetica')
set(findall(gcf,'type','text'),'FontName', 'Helvetica')
legend = findobj(gcf,'Type','legend')
set(legend,'FontName', 'Helvetica')
close all

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!