如何让LaTeX的\newcommand在正文正体、标题中自动斜体?
解决LaTeX分子式命令在正文正体、标题自动斜体的问题
直接修改你的\ru命令,让它自动检测当前是否处于caption标题环境,切换对应的字体样式:
方法一(推荐,需依赖etoolbox)
先确保加载etoolbox包(如果还没加的话),然后重新定义命令:
\usepackage{etoolbox} \newcommand{\ru}{% \ifbool{caption@captype}% 检测是否在figure/table的caption环境中 {$\mathit{Ru(NH_3)Cl_6};$}% 标题环境下用斜体分子式 {$\mathrm{Ru(NH_3)Cl_6};$}% 正文中用正体分子式 }
方法二(不依赖额外包)
如果不想加载etoolbox,可直接用caption包的原生检测命令:
\newcommand{\ru}{% \caption@ifcaptype{table}{$\mathit{Ru(NH_3)Cl_6};$}{% \caption@ifcaptype{figure}{$\mathit{Ru(NH_3)Cl_6};$}{$\mathrm{Ru(NH_3)Cl_6};$}% }% }
原理说明
caption@captype是caption包提供的内部布尔变量,当代码处于figure或table的caption环境中时,该变量为真;- 正文中用
\mathrm保持化学分子式的标准正体格式,标题中用\mathit生成斜体分子式,和你设置的textfont=it标题样式匹配; - 两种方法都不需要手动切换命令,同一个
\ru会根据所在环境自动调整字体。
内容的提问来源于stack exchange,提问作者sylvanas
相关产品推荐
相关产品推荐

