
答案1
正如我在評論中已經提到的:該chemfig
手冊有一個關於此類方案的部分。在手冊的範例中,有可以在此處使用的巨集\makebraces
和定義。\setpolymerdelims
第一個公式的註解:括號在chemfig
的公式(分支)中具有特殊意義。為了列印它們,必須用大括號括起來。
\documentclass{article}
\usepackage{chemfig}
\newcommand*\delimleft{}
\newcommand*\delimright{}
\newcommand*\makebraces{}
\newcommand*\delimhalfdim{}
\newcommand*\delimvshift{}
\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$}}$};}
}
\setpolymerdelim()
\begin{document}
\schemestart
$n$ \chemfig{{(}CH_2=CHCOOH{)}}
\arrow(--.-165)
\chemfig{-[@{b1}]CH_2-CH(-[2]COOH)-[@{b2}]}
\schemestop
\makebraces[5pt,5pt]{n}{b1}{b2}
\end{document}
更多參考/範例:
評論:
該chemmacros
包有一個模組polymers
,它定義了\makepolymerdelims
.使用它不需要在序言中添加定義。然而,只有使用它才有意義chemmacros
。那麼程式碼就變成了:
\documentclass{article}
\usepackage{chemfig,chemmacros}
\chemsetup{
modules = {polymers} ,
polymers/delimiters = ()
}
\begin{document}
\schemestart
$n$ \chemfig{{(}CH_2=CHCOOH{)}}
\arrow(--.-165)
\chemfig{-[@{b1}]CH_2-CH(-[2]COOH)-[@{b2}]}
\schemestop
\makepolymerdelims{5pt}{b1}{b2}
\end{document}