我有一个通常很开心的程序,它接收文件,绘制它们,吐出pdf(字母大小)。我使用注释将标题放在一组三个子图上方,并用作具有文件信息和日期的页脚。我希望标题位于页面顶部,从边距填充到边距,居中。
我有两种运行程序的方法:“批处理”模式和“交互”模式。在“交互式”模式下,我使用简单的figure()
命令创建图形。在“批处理”模式下,我使用figure('visible','off')
创建图形。这是我制作注释的命令:
annotation(obj.hFigure(f),'textbox',[0 0.9 1 0.1],...
'String',title,...
'HorizontalAlignment','center',...
'FontSize',18,...
'LineStyle','none',...
'FitBoxToText','off');
这里,“obj.hFigure(f)”只是我正在处理的图形的句柄。如您所见,我将图形放在图的顶部附近,并确保文本从框的底部开始(如果它更大)。
我的问题是上面注释的边距。在批处理模式下(没有数字显示),我在文本的两边都有10%左右的边距,这会破坏布局。在交互模式(数字显示)中,我没有得到边距:文本正确地从一个边缘流向另一个边缘。
我已将问题缩小到以下几点:如果我将数字显示为figure('visible','on')
) AND ,我可以在批处理模式下获得正确的ps打印响应< / p>
propertyeditor(gcf);
plotbrowser(gcf);
绘制每个图后。这使程序花费大约两倍的时间(这不是一个大问题)。但我不明白的是:drawnow
或refresh
没有完成这两个命令会做什么?!
答案 0 :(得分:0)
我不确定您的具体情况,但在过去遇到此类问题时,我通过明确设置数字大小取得了巨大成功:
set(gcf, 'Position', [100 100 300 300])
然后,在打印/保存之前将PaperPositionMode设置为auto,这似乎会强制打印的图形与屏幕上显示的尺寸相同:
set(gcf, 'PaperPositionMode','auto')