在 Chemfig 中,可逆反应用双鱼叉表示。顶部的鱼叉从左到右,底部的鱼叉从右到左。可以旋转这个双箭头。但我找不到像 \leftrighharpoon
在包中那样镜像它的方法mathrel
。这看起来很傻,但我的反应图非常大而且很复杂,所以正向和反向的相对位置很重要。
如果我遗漏了手册中或之前在此论坛上提出的问题中的某些内容,我深感抱歉。
答案1
最好的方法是定义一个新的箭头。你可以这样做:
\documentclass{article}
\usepackage{chemfig}
\makeatletter
\pgfarrowsdeclare{revhalf}{revhalf}%
{\CF@arrow@size\dimexpr2.5pt+2.5\pgflinewidth\relax
\pgfarrowsleftextend{-\CF@arrow@size}\pgfarrowsrightextend{.5\pgflinewidth}}%
{\CF@arrow@size\dimexpr2.5pt+2.5\pgflinewidth\relax
\pgfsetdash{}\z@\pgfsetroundjoin\pgfsetroundcap
\pgfpathmoveto{\pgfpoint\z@\z@}%
\pgfpathlineto{\pgfpoint{-\CF@arrow@size}{-.5\CF@arrow@size}}%
\pgfpathlineto{\pgfpoint{-.5\CF@arrow@size}\z@}%
\pgfpathlineto{\pgfpoint\z@\z@}%
\pgfusepathqfillstroke}
\definearrow3{<==>}{%
\CF@arrow@shift@nodes{#3}%
\edef\CF@tmp@str{%
\noexpand\path[allow upside down](\CF@arrow@start@node)--(\CF@arrow@end@node)%
node[pos=0,sloped,yshift=1pt](\CF@arrow@start@node @u0){}%
node[pos=0,sloped,yshift=-1pt](\CF@arrow@start@node @d0){}%
node[pos=1,sloped,yshift=1pt](\CF@arrow@start@node @u1){}%
node[pos=1,sloped,yshift=-1pt](\CF@arrow@start@node @d1){};%
}%
\CF@tmp@str
\expandafter\draw\expandafter[\CF@arrow@current@style,revhalf-](\CF@arrow@start@node @u0)--(\CF@arrow@start@node @u1);%
\expandafter\draw\expandafter[\CF@arrow@current@style,-revhalf](\CF@arrow@start@node @d0)--(\CF@arrow@start@node @d1);%
\CF@arrow@display@label{#1}{0.5}+\CF@arrow@start@node{#2}{0.5}-\CF@arrow@end@node%
}
\makeatother
\begin{document}
Normal:
\schemestart
\chemfig{A}
\arrow{<=>}[45]
\chemfig{B}
\arrow{<=>}
\chemfig{C}
\schemestop
Reversed:
\schemestart
\chemfig{A}
\arrow{<==>}[45]
\chemfig{B}
\arrow{<==>}
\chemfig{C}
\schemestop
\end{document}
我知道它可能可以做得更好、更容易,但它应该能完成工作。