Matlab: масштабные рисунки для публикации-точные размеры и размеры шрифта



В настоящее время я пишу научную диссертацию и очень отчаиваюсь в создании фигур, которые имеют точные размеры, которые я хочу, чтобы они имели. Особенно размеры шрифта не совпадают.
Я уже много гуглил, и есть куча руководств и сценариев по этой теме, но ничего не помогло-я еще не понял (извините), почему мой подход не работает:



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')


Когда я выполняю нагрузочный тест.eps в Inkscape, рисунок имеет размер 10.16 x 3.529 см и размеры шрифта (заголовка и оси этикетки) - 10.
Как получить фигуру с точным масштабированием, особенно в отношении размера шрифта?

665   2  

2 ответов:

Я сделал следующее:

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см х 4см. Размер шрифта по-прежнему утверждает, что в Inkscape он равен 10, но выглядит так же, как и на рисунке. Export_fig можно загрузить изMATLAB file exchange .

Вот как я решаю ее на данный момент - это не совсем элегантно, но это работает... Я строю свою фигуру и упорядочиваю и масштабирую ее в окне фигуры так, как я хочу, чтобы она была масштабирована:

set(gcf,'units','centimeters','position',[0 0 width height])
Из-за белых полей вокруг осей я увеличиваю ширину/высоту приблизительно (методом проб и ошибок...) значения, которые используют поля. Затем я экспортирую его:
export_fig(gcf,'test','-eps','-transparent')

И загрузите его в Inkscape. Теперь я устанавливаю свойства документа так, чтобы документ имел точный размер, который я хочу, чтобы моя фигура имела - фигура частично вышла из этой рамки, потому что я увеличил ширину/высоту ранее. Затем я располагаю оси так, чтобы между ними было столько белого пространства, сколько я хочу; надеюсь, что после этого все будет внутри границ документа. Вероятно, теперь чертеж меньше, чем границы документа - чтобы гарантировать, что он не будет расширен, испортив масштабирование, когда я помещу его в свой фактический документ (мою диссертацию, а не документ Inkscape...), Я просто создаю белый фон, который соответствует границы документа. ААА и готово. За исключением свойств fontsize и fontname в Matlab-я не понял, почему они не экспортируются должным образом...но это не трудно исправить вручную в Inkscape.

Спасибо всем за вашу помощь.

Comments

    Ничего не найдено.