如何在 chemfig 中为可逆箭头获取不同的颜色?

如何在 chemfig 中为可逆箭头获取不同的颜色?

我在 chemfig 中有以下反应方案:

在此处输入图片描述

我需要一些可逆反应:正向反应箭头为黑色,逆向反应箭头为红色。在 chemfig 中可以实现吗?

平均能量损失

\documentclass{article}
\usepackage{chemfig}

\begin{document}

\schemestart
P \arrow(P--Q){<=>[$\mathrm{k_{pq}}$]}[,,,red] Q
\arrow{<=>[$\mathrm{k_{qs}}$]}[30,,,red] S \arrow(S--T){<=>[][$\mathrm{k_{st}}$]}[-30,,,red] T
\arrow(@Q--R){<=>[][$\mathrm{k_{qr}}$]}[-30,,,red] R
\arrow(@R--@T){<=>[][$\mathrm{k_{rt}}$]}[,,,red]
\arrow(@T--U){<=>[][$\mathrm{k_{tu}}$]}[,,,red] U
\arrow(@U--V){->[$\mathrm{k_{uv}}$]} V
\schemestop

\end{document}

答案1

根据评论中的要求,这里有一个可能的解决方案,它不会覆盖的定义<=>,而是定义自己的新箭头<=r>

\documentclass{article}
\usepackage{chemfig}

\catcode`\_=11
\definearrow3{<=r>}{%
    \CF_arrowshiftnodes{#3}%
    \path[allow upside down](\CF_arrowstartnode)--(\CF_arrowendnode)%
            node[pos=0,sloped,yshift=1pt](\CF_arrowstartnode u0){}%
            node[pos=0,sloped,yshift=-1pt](\CF_arrowstartnode d0){}%
            node[pos=1,sloped,yshift=1pt](\CF_arrowstartnode u1){}%
            node[pos=1,sloped,yshift=-1pt](\CF_arrowstartnode d1){};%
    \begingroup
        \pgfarrowharpoontrue
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode u0)--(\CF_arrowstartnode u1);%
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle,red](\CF_arrowstartnode d1)--(\CF_arrowstartnode d0);%
    \endgroup
    \CF_arrowdisplaylabel{#1}{0.5}+\CF_arrowstartnode{#2}{0.5}-\CF_arrowendnode%
}
\catcode`\_=8

\begin{document}

\schemestart
P \arrow(P--Q){<=r>[$\mathrm{k_{pq}}$]}[,,,] Q
\arrow{<=>[$\mathrm{k_{qs}}$]}[30,,,] S \arrow(S--T){<=>[][$\mathrm{k_{st}}$]}[-30,,,] T
\arrow(@Q--R){<=>[][$\mathrm{k_{qr}}$]}[-30,,,] R
\arrow(@R--@T){<=>[][$\mathrm{k_{rt}}$]}[,,,]
\arrow(@T--U){<=>[][$\mathrm{k_{tu}}$]}[,,,] U
\arrow(@U--V){->[$\mathrm{k_{uv}}$]} V
\schemestop

\end{document}

输出结果如下:

在此处输入图片描述

以下代码将颜色变化应用于所有<=>箭头。

\documentclass{article}
\usepackage{chemfig}

\catcode`\_=11
\definearrow3{<=>}{%
    \CF_arrowshiftnodes{#3}%
    \path[allow upside down](\CF_arrowstartnode)--(\CF_arrowendnode)%
            node[pos=0,sloped,yshift=1pt](\CF_arrowstartnode u0){}%
            node[pos=0,sloped,yshift=-1pt](\CF_arrowstartnode d0){}%
            node[pos=1,sloped,yshift=1pt](\CF_arrowstartnode u1){}%
            node[pos=1,sloped,yshift=-1pt](\CF_arrowstartnode d1){};%
    \begingroup
        \pgfarrowharpoontrue
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle](\CF_arrowstartnode u0)--(\CF_arrowstartnode u1);%
        \expandafter\draw\expandafter[\CF_arrowcurrentstyle,red](\CF_arrowstartnode d1)--(\CF_arrowstartnode d0);% <---------------modified line
    \endgroup
    \CF_arrowdisplaylabel{#1}{0.5}+\CF_arrowstartnode{#2}{0.5}-\CF_arrowendnode%
}
\catcode`\_=8

\begin{document}

\schemestart
P \arrow(P--Q){<=>[$\mathrm{k_{pq}}$]}[,,,] Q
\arrow{<=>[$\mathrm{k_{qs}}$]}[30,,,] S \arrow(S--T){<=>[][$\mathrm{k_{st}}$]}[-30,,,] T
\arrow(@Q--R){<=>[][$\mathrm{k_{qr}}$]}[-30,,,] R
\arrow(@R--@T){<=>[][$\mathrm{k_{rt}}$]}[,,,]
\arrow(@T--U){<=>[][$\mathrm{k_{tu}}$]}[,,,] U
\arrow(@U--V){->[$\mathrm{k_{uv}}$]} V
\schemestop

\end{document}

<=>我复制了from的定义chemfig.tex并添加,red到代码中的标记行中。

输出结果如下:

在此处输入图片描述


chemfig可以通过本帖的修订历史访问与旧版本软件包(v1.4 之前)兼容的这些 MWE 的先前版本。

相关内容