我有一个分子\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@state
为1
,并且仅为下一个分子\vflipnext
设置\CF@split@state
为。在解析分子期间将其重置为 。2
0
下面我定义了命令\chemflipbelow
和,\chemflipabove
默认为\chembelow
和,但如果设置为,\chemabove
则更改角色:\CF@split@state
2
\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}