在 chemfig chemmacro 中更改 lewis dot 的字体形状

在 chemfig chemmacro 中更改 lewis dot 的字体形状

我希望绘制一个显示自由基链式反应的化学反应。我使用chemfigchemmacrosbeamerbeamer使用无衬线字体,这种字体显示效果好,而且不太繁琐。

当我按照手册中所示写下我的结构时,我最终得到了我的反应,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 :\chlewischemmacros

\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}

在此处输入图片描述

相关内容