如何在PDF矢量图形中更改Matlab "exportgraphics"函数中的字体



我正试图使用Matlab文档中建议的Matlab"exportgraphics"函数将Matlab图形导出为PDF矢量图形。参考:

https://www.mathworks.com/help/matlab/ref/exportgraphics.html

一切都很好。然而,用于标题、x和y标签以及刻度的字体与运行代码后弹出的Matlab图中使用的字体不匹配。它改成了不符合我目的的字体"times"。现在,我想指定这三种字体:标题、x和y标签以及刻度(数字(。单独执行此操作不是必需的,而是可选的。有人有什么建议吗?

正如你在我的代码中看到的那样,我已经试图通过在(例如("ylabel"命令中指定字体来影响字体。

figure
plot(Zeit1,Temperatur1,'LineWidth',2)
grid on
title('Temperatur-Messprogramm für Messreihe 1')
xlabel('Zeit [min]')
ylabel('Temperatur [°C]', 'FontName', 'Helvetica')
xlim([-5 150])
ylim([-5 405])
set(gca,'FontSize',30)
exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_1.jpg','Resolution',600)
exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_1.pdf','Resolution',600,'ContentType','vector')

这确实会影响Matlab图中显示的字体,但对程序导出的PDF矢量图形没有任何更改。无论我做什么,这个都会保持在字体"Times"中。试图按照另一个用户的建议更改所有数字的默认字体(set(0,'DefaultAxesFontName','scrbook')(也不会产生所需的效果。

创建的图形

exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_1.jpg','Resolution',600)

是正确的字体,但为常规图像。创建的图形

exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_1.pdf','Resolution',600,'ContentType','vector')

使用了错误的字体,但使用了所需的PDF矢量图形格式。

感谢您的支持!

致以亲切的问候,Timon

  • 这篇文章是在发现"times"是PDF矢量图形的默认字体后编辑的,因此这是一种测试方法,看是否可以更改字体

因此,经过一段时间的思考,我放弃了使用exportgraphics函数的想法。自从它首次在Matlab 2020a中引入以来,它可能确实有一个错误。我接着使用了一个名为matlab2tikz的函数,可以在这里下载:

https://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz-matlab2tikz

该函数可以将图形保存为矢量图形,并使用\input命令将其包含在LaTeX中(请参阅本文末尾的代码(。使用的字体将是LaTeX(计算机现代罗马字(中默认使用的字体,这也是我最终想要实现的。有关详细信息,请参阅:

https://www.youtube.com/watch?v=dg7z3bs-eA8

(不需要懂德语就能理解视频(

我使用的最后一个Matlab代码是:

gomatlab2tikz = true
figure('units','centimeters','position',[0 0 15.5 10.333])
plot(Zeit3,Temperatur3,'LineWidth',2)
grid on
title('Temperatur-Messprogramm für Messreihe 3')
xlabel('Zeit [min]') %Zeit [min]
ylabel('Temperatur [°C]') %Temperatur [°C]
xlim([0 150])
ylim([0 400])
xticks(linspace(0,150,16))
yticks(linspace(0,400,21))
set(gca,'FontSize',11)
if gosave == true
exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_3.jpg','Resolution',150)
exportgraphics(gcf,'Temperatur_Messprogramm_Messreihe_3.pdf','Resolution',150,'ContentType','vector')
end
if gomatlab2tikz == true
matlab2tikz('Temperatur_Messprogramm_Messreihe_3.tikz')
end

至少在我的情况下,Matlab显示的数字不必以厘米为单位进行校正。但是,如果通过\input命令将.tikz文件导入LaTeX,则图形的尺寸将是正确的。为了进一步改进布局,可以使用\resizebox命令。

begin{figure}[h]
centering
resizebox{1.00linewidth}{!}{input{Figures/Versuche/Temperatur_Messprogramm_Messreihe_1.tikz}}
caption{Temperatur Messprogramm Messreihe 1}
label{Temperatur_Messprogramm_Messreihe_1}
end{figure}

相关内容

  • 没有找到相关文章

最新更新