![如何使用 chemfig 套件移動鍵位?](https://rvso.com/image/286994/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20chemfig%20%E5%A5%97%E4%BB%B6%E7%A7%BB%E5%8B%95%E9%8D%B5%E4%BD%8D%EF%BC%9F.png)
我正在使用此程式碼來生成帶有chemfig
包的化學結構:
\documentclass[12pt,a4paper]{standalone}
\usepackage{chemfig}
\begin{document}
\setatomsep{2.5em}
\chemfig{B(-[:35]N*5(=(-*6(=-=(-OH)-(-NO_2)=-))-=(-Ph)-(=N?[o])-))(-[:145]N*5(-?[o]=(-Ph)-=(-*6(=-=(-O-[7]-[1](=[:65]O)(-[:15]NH(-{(CH_2CH_2O)_nH})))-=-))-))(<[:225]F)(<:[:-45]F)}
\end{document}
我不高興如何chemfig
建立連接,它與紅色交叉。我需要有從N
第一個C
原子到第二個原子的鍵。
應如何更改程式碼以避免此問題。
答案1
這是另一個想法:如果將每個括號放在大括號 ({(}
和{)}
) 之間,它們將被視為原子(即像C
或H
),並且您可以使用鍵的可選參數來確定鍵到達的位置:
<bond>[<angle>,<length factor>,<departure atom>,<arrival atom>,<TikZ options>]
其中<departure atom>
和<arrival atom>
分別是鍵應開始或結束的原子的位置號。
在您的情況下,以下片段(MWE 的其餘部分不變)
-[,,,2]{(}CH_2CH_2O{)}_nH
給出
答案2
可以這樣做:
\documentclass[12pt,a4paper]{standalone}
\usepackage{chemfig}
\newcommand\setpolymerdelim[2]{\def\delimleft{#1}\def\delimright{#2}}
\def\makebraces[#1,#2]#3#4#5{%
\edef\delimhalfdim{\the\dimexpr(#1+#2)/2}%
\edef\delimvshift{\the\dimexpr(#1-#2)/2}%
\chemmove{%
\node[at=(#4),yshift=(\delimvshift)]
{$\left\delimleft\vrule height\delimhalfdim depth\delimhalfdim
width0pt\right.$};%
\node[at=(#5),yshift=(\delimvshift)]
{$\left.\vrule height\delimhalfdim depth\delimhalfdim
width0pt\right\delimright_{\rlap{$\scriptstyle#3$}}$};}}
\begin{document}
\setpolymerdelim()
\setatomsep{2.5em}
\chemfig{B(-[:35]N*5(=(-*6(=-=(-OH)-(-NO_2)=-))-=(-Ph)-(=N?[o])-))(-[:145]N*5(-?[o]=(-Ph)-=(-*6(=-=(-O-[:-45]-[:10](=[:65]O)(-[:-15]NH(-[@{op,.85}:1]CH_2CH_2O-[@{cl,0.15}:0,.7]H)(-[5,0.5,,,white])))-=-))-))(<[:225]F)(<:[:-45]F)}
\makebraces[5pt,5pt]{\!n}{op}{cl}
\end{document}