Matlab:出版用比例数字-精确尺寸和字体大小

Matlab:出版用比例数字-精确尺寸和字体大小,matlab,font-size,scaling,figure,Matlab,Font Size,Scaling,Figure,我目前正在写一篇科学论文,对于创造出我想要的精确尺寸的数字感到非常失望。尤其是字体大小不匹配。 我已经在谷歌上搜索了很多,有很多关于这个主题的指南和脚本,但是没有什么真正的帮助-我还没有弄明白(对不起)为什么我的方法不起作用: FS=8; %font size in points (the same as in my document) width=12; %width of figure in cm height=4; %height of figure in cm scatter(1:20,

我目前正在写一篇科学论文,对于创造出我想要的精确尺寸的数字感到非常失望。尤其是字体大小不匹配。 我已经在谷歌上搜索了很多,有很多关于这个主题的指南和脚本,但是没有什么真正的帮助-我还没有弄明白(对不起)为什么我的方法不起作用:

FS=8; %font size in points (the same as in my document)
width=12; %width of figure in cm
height=4; %height of figure in cm
scatter(1:20,rand(20,1));
xlabel('X','fontsize',FS),ylabel('Y','fontsize',FS),title('X vs. Y','fontsize',FS)
%now I scale the figure and place it in the bottom left corner. The white margins around it are cropped automatically
set(gca,'units','centimeters','outerposition',[0 0 width height])
%export as .eps
print(gcf,'-depsc','test')
当我将test.eps加载到Inkscape中时,该图的大小为10.16 x 3.529 cm,字体大小(标题和轴标签)为10。 如何获得精确缩放的数字,特别是关于字体大小的数字?

我做了以下操作:

FS=8; %font size in points (the same as in my document)
width=12; %width of figure in cm
height=4; %height of figure in cm
scatter(1:20,rand(20,1));
set(gca, 'fontsize', FS);
xlabel('X','fontsize',FS),ylabel('Y','fontsize',FS),title('X vs. Y','fontsize',FS)
set(gcf,'units','centimeters','position',[0 0 width height])
export_fig(gcf, 'test.pdf', '-transparent', '-nocrop')

输出数字为12厘米x4厘米。然而,Inkscape中的字体大小仍然声称为10,但看起来与图中的大小相同。可从下载。

以下是我目前解决该问题的方法-它并不十分优雅,但可以工作。。。 我绘制了我的图形,并按照我希望的缩放方式在图形窗口中对其进行排列和缩放:

set(gcf,'units','centimeters','position',[0 0 width height])
由于轴周围有白色边距,我将宽度/高度增加了边距使用的近似值(试错…)。然后我将其导出:

export_fig(gcf,'test','-eps','-transparent')
并将其加载到Inkscape中。现在,我设置了文档属性,以便文档具有我想要的图形的确切大小-图形部分超出此框架,因为我之前增加了宽度/高度。 然后我安排轴之间有我想要的尽可能多的空白;希望此后所有内容都在文档边框内。 现在,绘图可能比文档边框小-为了确保它不会被扩展,从而影响缩放,当我将其放入实际文档(我的论文,而不是Inkscape文档…)时,我只需创建一个与文档边框匹配的白色背景。啊,完成了。 除了Matlab中的fontsize和fontname属性之外,我还没有弄明白为什么它们不能正确导出……但在Inkscape中手动修复并不困难


谢谢大家的帮助。

旁注:如果您使用的是乳胶,您可以看看包装。这允许您替换eps图形中的字符串。因此,替换内容的字体和大小与文本相同。您可以尝试figure属性。从描述上看,它似乎在做你想做的事情。@Schorsch
PaperPosition
是个窍门,我也曾为此挣扎过,在网上搜索了几个小时。您应该将此作为答案发布。@Schorsch@patrik我已经尝试过PaperPosition,但这也不起作用:
设置(gcf、'paperunits'、'cm'、'papersize'、[width]、[PaperPosition'、[0 width height])导出时,图形仍然不是宽x高比例,这对我不适用-我导出的图形是10.36cm x 3.89cm大。我不明白为什么这不起作用。。。