![chemfig パッケージで結合位置を移動するにはどうすればよいですか?](https://rvso.com/image/286994/chemfig%20%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%A7%E7%B5%90%E5%90%88%E4%BD%8D%E7%BD%AE%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.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}
赤で交差している接続の作り方が気に入らない。2 番目の原子ではなく、最初の原子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}