如何在保持无衬线字体的同时将MATLAB绘图标签局部设为斜体?
MATLAB LaTeX 标签实现无衬线斜体的方法
要让标签中的c/R_p [-]部分保持无衬线字体且变为斜体,可通过正确嵌套LaTeX的字体命令实现,核心是区分数学模式与文本模式的处理逻辑:
- 数学表达式
c/R_p:在数学模式中使用\mathsf{\mathit{...}}嵌套,\mathsf指定无衬线数学字体,\mathit在该字体环境下触发斜体效果 - 文本部分
[-]:利用全局已设置的cmss无衬线字体,用\textit{...}直接生成无衬线斜体文本
修改后的MATLAB代码如下:
xlabel(ax2, '{\fontfamily{cmss}\selectfont Chord $\mathsf{\mathit{c/R_p}}$ \textit{[-]}}', 'Interpreter', 'latex');
也可以将[-]放入数学模式统一处理,效果完全一致:
xlabel(ax2, '{\fontfamily{cmss}\selectfont Chord $\mathsf{\mathit{c/R_p} \, [-]}$}', 'Interpreter', 'latex');
原理说明:\mathsf会将数学模式内的内容切换为无衬线字体,而cmss字体本身包含斜体变种,\mathit在\mathsf环境下会调用该斜体样式,既保留无衬线风格又实现斜体;文本模式下的\textit则直接应用全局设置的cmss斜体字体。
内容的提问来源于stack exchange,提问作者floyd123
相关产品推荐
相关产品推荐

