我正在准备一篇论文以供发表,出版商要求在文本模式下使用带有旧式数字的字体。这导致我在使用该\ce
命令时使用旧式数字。没问题,我只需重新定义\ce
它,使其自动处于数学模式,如下所示:
\documentclass{article}
\usepackage{mathspec}
\makeatletter % undo the wrong changes made by mathspec
\let\RequirePackage\original@RequirePackage
\let\usepackage\RequirePackage
\makeatother
\setmainfont{Constantia}
\setmathsfont(Digits){TeX Gyre Termes}
\setmathsfont(Latin){Constantia}
\setmathrm{Constantia}
\usepackage[version=4]{mhchem}
%All uses of \ce are in math mode:
\let\oldce\ce
\renewcommand{\ce}[1]{\ensuremath{\oldce{#1}}}
\begin{document}
\oldce{[Co^{II}(NCS)6]^4-}\ce{[Co^{II}(NCS)6]^4-}
\end{document}
这样我就得到了正确的数字,并且还得到了正确的减号作为奖励,但是现在括号与文本模式下的括号不匹配:
有没有办法用文本模式括号替换这些数学模式括号?也许基于这个答案?
答案1
为什么不改变 mhchem 使用的文本字体呢,例如:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Constantia}
\newfontfamily\cefamily{Constantia}[Numbers=Lining,Ligatures=TeX]
\usepackage[version=4]{mhchem}
\begin{document}
\ce{[Co^{II}(NCS)6]^{123456789}-}
\mhchemoptions{textfontcommand=\cefamily}
\ce{[Co^{II}(NCS)6]^{123456789}-}
\end{document}