如何使用 chemfig 包移动键位置?

如何使用 chemfig 包移动键位置?

我正在使用此代码通过包生成化学结构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

还有另一种想法:如果你把每个括号放在大括号之间({(}{)})之间,它们将被视为一个原子(即像CH),并且您可以使用键的可选参数来确定键到达的位置:

<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}

在此处输入图片描述

相关内容