Matlab图形窗口及导出PDF时如何保留LaTeX字体并指定尺寸?
解决Matlab图形LaTeX字体一致性及指定尺寸导出PDF问题
一、实现图形窗口/导出文件的LaTeX字体统一
直接指定字体名会因Live脚本与独立图形窗口的渲染机制差异导致字体异常,改用Matlab的LaTeX渲染模式可彻底解决这个问题,步骤如下:
- 全局启用LaTeX解释器
让所有文本元素(标签、刻度、图例等)都通过LaTeX渲染,保证跨环境字体一致:
% 全局设置文本解释器为LaTeX set(0, 'DefaultTextInterpreter', 'latex'); set(0, 'DefaultAxesTickLabelInterpreter', 'latex'); set(0, 'DefaultLegendInterpreter', 'latex');
- 指定Latin Modern Roman字体
通过LaTeX预加载lmodern包,替换默认的Computer Modern字体为Latin Modern Roman:
set(groot, 'DefaultTextPreamble', '\usepackage{lmodern}');
- 简化绘图代码
无需再手动给每个标签指定FontName,直接用LaTeX语法编写文本(如上标^2)即可:
sun = dataset.sun; time = linspace(0,10,length(sun)); plot(time, sun, 'LineWidth',3); xlabel('Time [d]', 'FontSize', 35); ylabel('Solar Irradiance [W/m^2]', 'FontSize', 35); set(gca, 'FontSize', 25);
这样设置后,无论是Live脚本右侧预览、独立图形窗口,还是导出的PDF/SVG文件,都会统一显示Latin Modern Roman字体。
二、直接导出指定尺寸的PDF文件
使用Matlab推荐的exportgraphics函数(比旧版print更稳定),可直接指定导出尺寸,单位支持厘米:
% 获取当前图形对象 fig = gcf; % 开启自动纸张位置模式,确保尺寸精准 fig.PaperPositionMode = 'auto'; % 导出宽15cm、高10cm的PDF,分辨率设为300DPI(按需调整) exportgraphics(fig, 'solar_irradiance.pdf', 'Width', 15, 'Height', 10, 'Resolution', 300);
注意事项
- 确保你的系统已安装LaTeX发行版(如TeX Live、MikTeX),Matlab需能调用LaTeX环境(可通过
ver命令检查是否包含LaTeX支持); lmodern包是LaTeX标准包,无需额外安装,若需其他字体可修改预加载的包。
内容的提问来源于stack exchange,提问作者Diodendomme
相关产品推荐
相关产品推荐

