我想用 chemfig 制作这样的聚合物结构:
\documentclass{article}
\usepackage{chemfig}
\begin{document}
\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()
\chemfig[][scale=0.5]{-[@{op, 0.75}]O-[:30](=[:120]O)-*6(-=-(-(=[:60]O)-[:-30]O--[:30]-[@{cl, 0.25}])=-=)}
\makebraces[8pt, 8pt]{\!\!n}{op}{cl}\\
\end{document}
Overleaf 制作了聚合物结构和支架,但是却给了我很多错误消息:
\makebraces 定义中的参数数量非法。
l.70 \edef\delimvshift{\the\dimexpr(#1#
您的意思是输入 ## 而不是 #,对吗?或者之前某个地方忘记了 },导致一切都搞砸了?我假设您的意思是 ##。
有人知道我做错了什么吗?
答案1
注意chemfig
软件包最近已更新,版本 1.33 包含\polymerdelim
具有以下语法的宏:
\polymerdelim[<keys>=<values>]{<node1>}{<node2>}
有关使用的详细信息,请参阅12.4 绘制聚合物单元第 43 页chemfig 手册。我不确定 Overleaf 是否已经更新了他们的软件包,但无论如何我都会坚持使用新语法。我也不会使用缩放;相反,将键缩短一点。
因此,针对聚对苯二甲酸乙二醇酯的结构,我建议如下(我也稍微调整了角度):
\documentclass{article}
\usepackage{chemfig}
\setchemfig{
atom sep = 1.75em,
double bond sep = 0.3em,
bond join = true,
}
\renewcommand*\printatom[1]{\ensuremath{\mathsf{#1}}}
\begin{document}
\chemfig{
-[@{op, 0.5}]O-[:60](=[:120]O)-*6(-=-(-(=[:60]O)-[:-60]O--[:60]-[@{cl, 0.5}])=-=)
}
\polymerdelim[height = 32pt, depth = 4pt, indice = \!\!n]{op}{cl}
\end{document}