MATLAB 中英文混排-Tex解释器

MATLAB 中英文混排最常用、最稳定的方法就是你已经在用的这种------用 TeX 解释器的 \fontname{} 命令按段切换字体。这是国内期刊要求"中文宋体、西文和数字 Times New Roman"时的标准做法。补充一些细节和易踩的坑:

基本规则

\fontname{字体名} 会从它出现的位置开始生效,一直持续到下一个 \fontname{} 或字符串结束,只改变字体,不改变大小、粗细等其他属性。

复制代码
'\fontname{Times New Roman}C\fontname{SimSun}预测值/\fontname{Times New Roman}%'

这行代码含义是:C 用 Times New Roman,预测值/ 用宋体,% 用 Times New Roman ------ 你写的完全正确。

必须满足的前提条件

  1. Interpreter 必须是 'tex'(这也是大多数文本对象的默认值,但保险起见显式设置):

    'Interpreter', 'tex'

  2. 不能用 'latex' 解释器------MATLAB 自带的 LaTeX 解释器不支持任意中文字体切换,中文会显示不出来或报错。

  3. 外层设置的 'FontName' 相当于"默认字体",\fontname{} 会覆盖它所在片段的字体,其余没被 \fontname 包裹的部分用外层 FontName。所以你在 ylabel 里同时写了 '\fontname{SimSun}输入特征' 又设置了 'FontName', chineseFontName,这个外层 FontName 其实是多余的(会被 \fontname{SimSun} 覆盖),但不冲突,不影响效果。

常见坑

  • 粗体/斜体组合\fontname{Times New Roman}\bf 这种写法在 TeX 解释器里是可行的,但有些 MATLAB 版本对 \fontname'FontWeight','bold'(对象属性层面设置)混用时表现不一致,建议统一用 TeX 命令控制(\bf\it)而不是同时用对象属性。

  • 特殊符号(如 ℃、°、±) :这些符号在某些中文字体(如 SimSun)里可能显示不全或字形不美观,建议像你处理 % 一样单独指定西文字体,你这行已经这么做了:

    '\fontname{SimSun}温度预测值/\fontname{Times New Roman}℃'

是对的做法。

  • legend、title、text 等对象同理,都支持这套语法,不需要额外设置。

  • 上下标混用 (如 x_1x^2)时,\fontname{} 切换要放在 _/^ 之前,否则上下标可能跟着变成中文字体导致变形:

    '\fontname{Times New Roman}x_1\fontname{SimSun}值'

如果只是想省事------不严格区分字体

宋体(SimSun)本身也包含西文和数字字形,如果不是投稿格式硬性要求"中英文分字体",可以直接全用一种中文字体,不用 \fontname 切换:

复制代码
ylabel(ax, 'C 预测值/%', 'FontName', 'SimSun', 'FontSize', labelFontSize)

但如果是要投中文核心期刊、对"西文用 Times New Roman"有明确格式要求,那就必须用你现在这种 \fontname{} 混排方式,这是目前 MATLAB 里做中英文混合标注最可靠的手段。

相关推荐
2zcode7 小时前
基于MATLAB深度卷积特征的多曝光图像自适应融合系统设计与实现
开发语言·matlab·多曝光图像自适应融合系统
钟山翼11 小时前
notepad++ 使用 HexEditor 显示二进制 bin 文件存在的 bug
matlab·二进制文件
2zcode1 天前
项目文档:基于MATLAB图像处理与FCM聚类的骨癌X射线影像辅助检测系统设计与实现
图像处理·matlab·聚类
2zcode2 天前
项目文档:基于MATLAB深度卷积特征的多曝光图像自适应融合系统设计与实现
深度学习·计算机视觉·matlab
Promise微笑3 天前
回路电阻测试仪采购:多维度技术评估与深度避坑指南
开发语言·matlab·语音识别
程高兴4 天前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
2zcode5 天前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
matlab代码5 天前
Matlab基于主成分分析PCA人脸识别系统(GUI界面)【源码44期】
开发语言·matlab·人脸识别