我有一个数字,我想调整大小,然后打印为PDF。 使用像
这样的东西set(hFig, 'PaperUnits', 'centimeters')
set(hFig, 'PaperSize', [x_B x_H]);
只要我没有太大幅度地调整数字,就会起作用。如果我降低高度,那么在某些点上,xlabel移出图形。我搜索了很多,但只找到了手动调整底层轴 - 对象
的解决方案scalefactor = 0.96;
movefactor = 0.82;
hAx = get(gcf,'CurrentAxes');
g = get(hAx,'Position');
% 1=left, 2=bottom, 3=width, 4=height
g(2) = g(2) + (1-movefactor)/2*g(4);
g(4) = scalefactor*g(4);
set(hAx,'Position',g);
我不喜欢这种方法,因为我必须手动调整这两个因素。
在打印之前,我将'interpreter'设置为所有文本对象的“latex”(如果这是关注的话)。 使用
实现打印print(hFig, '-dpdf', '-loose', 'test.pdf');
我希望使用'-loose'来松开边界框。任何帮助都非常感谢!
编辑: 似乎真正的翻译(无,特克斯,乳胶)在这方面发挥了作用。我在这里得到了这篇文章的启发(http://stackoverflow.com/questions/5150802/how-to-save-plot-into-pdf-without-large-margin-around)并提出了这个解决方案:
tightInset = get(gca, 'TightInset');
position(1) = tightInset(1);
position(3) = 1 - tightInset(1) - tightInset(3);
if strcmpi(x_Interpreter,'latex')
position(2) = tightInset(2)+ 1*tightInset(4);
position(4) = 1 - tightInset(2) - 2*tightInset(4);
else
position(2) = tightInset(2)+ 0*tightInset(4);
position(4) = 1 - tightInset(2) - 1*tightInset(4);
end
set(gca, 'Position', position);