我正试图使用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}