我希望绘制一个显示自由基链式反应的化学反应。我使用chemfig
和chemmacros
和beamer
。beamer
使用无衬线字体,这种字体显示效果好,而且不太繁琐。
当我按照手册中所示写下我的结构时,我最终得到了我的反应,sans serif
但附加在其上的自由基和原子serif
在下面的例子中是起始反应{1}。
我使用幻影原子来解决这个问题,如下例中的传播反应 {2} 所示。区别在于 {1} 右侧的 Cl. 自由基和 {2} 左侧的 Cl. 自由基。
虽然我提供了解决方法,但我的问题是:
有没有办法将 Lewis 字体形状设置为全局字体形状?\chemsetup[chemformula]{font-shape=sf}
什么都没有改变!
\documentclass{beamer}
\usepackage{chemfig}
\usepackage{chemmacros}
\begin{document}
\chemsetup[chemformula]{font-shape=sf}
\begin{frame}
\begin{reactions}
Cl-Cl ->[$\Delta$][$h\nu$] 2 "\Lewis{0.,Cl}" \label{react:init}\\
R3H + Cl "\Lewis{0.,\vphantom{H}}" -> R3 "\Lewis{0.,\vphantom{H}}" + HCl \label{react:propagation}
\end{reactions}
\end{frame}
\end{document}
答案1
chemfig
's在内部\Lewis
使用\printatom
(一个chemfig
宏)。您必须重新定义它:
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{chemfig}
\usepackage{chemmacros}
\chemsetup[chemformula]{font-shape=sf}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\begin{document}
\begin{frame}
\begin{reactions}
Cl-Cl &->[$\Delta$][$h\nu$] 2 "\Lewis{0.,Cl}" \label{react:init}\\
R3H + Cl "\Lewis{0.,\vphantom{H}}"
&->
R3 "\Lewis{0.,\vphantom{H}}" + HCl \label{react:propagation}
\end{reactions}
\end{frame}
\end{document}
或者,如果您拥有最新版本,则可以使用chemmacros
' own :\chlewis
chemmacros
\documentclass{beamer}
\usepackage[T1]{fontenc}
\usepackage{chemmacros}
\chemsetup[chemformula]{font-shape=sf}
\begin{document}
\begin{frame}
\begin{reactions}
Cl-Cl &->[$\Delta$][$h\nu$] 2 "\chlewis{0.}{Cl}" \label{react:init}\\
R3H + "\chlewis{0.}{Cl}"
&->
R3 "\chlewis{0.}{\vphantom{H}}" + HCl \label{react:propagation}
\end{reactions}
\end{frame}
\end{document}