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_1、x^2)时,\fontname{} 切换要放在 _/^ 之前,否则上下标可能跟着变成中文字体导致变形:

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

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

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

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

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

相关推荐
菜鸟~noob2337 小时前
【电子战】 第26篇:大气衰减——氧气与水汽吸收【含matlab代码】
开发语言·matlab
菜鸟~noob2337 小时前
【电子战】第25篇:自由空间、双射线与菲涅尔区【含matlab代码】
开发语言·算法·matlab
Evand J1 天前
【电机滤波例程5】渐消因子自适应扩展卡尔曼滤波(EKF),MATLAB。PMSM负载突变下的状态估计。附下载链接
算法·matlab
weixin_307779131 天前
C++代码实现MATLAB中的cvpartition函数功能
开发语言·c++·算法·matlab
机器学习之心2 天前
DCNN-PINN锂电池SOC估计,因果空洞卷积+物理信息神经网络,把库仑定律写进损失函数,MATLAB代码
人工智能·神经网络·matlab
weixin_307779132 天前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
菜鸟~noob2332 天前
【电子战】 第22篇:误差椭圆与置信区间【含matlab代码】
开发语言·算法·matlab
weixin_307779132 天前
C++代码实现MATLAB中的normalize函数功能
开发语言·c++·算法·matlab
素是3 天前
simulink中data memory不能设置为全局变量
matlab
海天一色y3 天前
深入理解对偶单纯形法:原理推导与 Python/MATLAB 编程实现
python·matlab·最优化算法·对偶单纯形法