使用 \chemabove/\chembelow 与 \vflipnext

使用 \chemabove/\chembelow 与 \vflipnext

我有一个分子\chemabove,里面有一个命令,我想用 垂直镜像它\vflipnext。除了用命令定位的原子外,其他一切都翻转得很好\chemabove,它只是保持其在另一个原子上方的位置。有没有办法让这个原子也翻转?

梅威瑟:

\documentclass{article}
\usepackage{chemfig}

\begin{document}
  % Dimethylamine
  \definesubmol{mol}{%
    -[::30]\chemabove{N}{H}-[::-60]%
  }

  % Normal orientation
  \chemfig{!{mol}}
  \par
  % Flipped orientation with wrongly positioned H
  \vflipnext
  \chemfig{!{mol}}
\end{document}

平均能量损失

答案1

分子的绘制方式取决于 的值,\CF@split@state通常为0\hflipnext设置\CF@split@state1,并且仅为下一个分子\vflipnext设置\CF@split@state为。在解析分子期间将其重置为 。20

下面我定义了命令\chemflipbelow和,\chemflipabove默认为\chembelow和,但如果设置为,\chemabove则更改角色:\CF@split@state2

\documentclass{article}
\usepackage{chemfig}

\makeatletter
\def\chemflipabove{%
  \ifnum\CF@split@state=\tw@
    \expandafter\chembelow
  \else
    \expandafter\chemabove
  \fi
}
\def\chemflipbelow{%
  \ifnum\CF@split@state=\tw@
    \expandafter\chemabove
  \else
    \expandafter\chembelow
  \fi
}
\makeatother

\definesubmol{mol}{%
  -[::30]\chemflipabove{N}{H}-[::-60]%
}

\begin{document}

\chemfig{!{mol}}

\vflipnext\chemfig{!{mol}}\par\vskip5ex

\chemfig{R-\chemflipabove{C}{H}-\chemflipbelow{C}{H}-R}\par\vskip5ex

\vflipnext\chemfig{R-\chemflipabove{C}{H}-\chemflipbelow{C}{H}-R}

\end{document}

在此处输入图片描述

相关内容