![使用 chemfig 展示化学键和原子位置](https://linux22.com/image/355740/%E4%BD%BF%E7%94%A8%20chemfig%20%E5%B1%95%E7%A4%BA%E5%8C%96%E5%AD%A6%E9%94%AE%E5%92%8C%E5%8E%9F%E5%AD%90%E4%BD%8D%E7%BD%AE.png)
我用下面的代码绘制它:
\documentclass[12pt, border={10pt 10pt 10pt 10pt}]{standalone}
\pagestyle{empty}
\usepackage{standalone}
\usepackage[utf8]{inputenc}%Para copiar caracteres especiais como ç, á, à
\usepackage[T1]{fontenc}%Para copiar caracteres especiais como ç, á, à
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx,graphics}
\usepackage[brazil]{babel}
\usepackage{chemfig}
\begin{document}
\chemfig{%
*6(-(-[:-72]?[a])(<[:-150]H)-N*6(-^{+}(-[:-108]NH2?[a])-NH1-(<[:90]H)(-[:30](<[:90]OH)-[:-30]*6(-M-(=[:-90]O)-NH-(=[:30]O)-=\phantom{L}))-?[b])-?[b](<[:90]H)--(<[:150]^{-}O_{3}SO)-)(<[:-150]H_3C)
}
\end{document}
结果是:
我的问题:
- 我怎样才能将正电荷从结构中取出,就像例子中的那样?
- 如何在 N、NH1 和 NH2 之间用一条虚线画出双键?
- 我怎样才能正确地将 NH2 原子与外面的氢连接起来?
- 我怎样才能用 HN 代替 M?我一直在尝试,但 H 原子中的边界链接
有什么帮助、指示或建议吗?
答案1
\documentclass[12pt, border=3mm,tikz]{standalone}
\usepackage[utf8]{inputenc}%Para copiar caracteres especiais como ç, á, à
\usepackage[T1]{fontenc}%Para copiar caracteres especiais como ç, á, à
\usepackage{chemfig}
\usetikzlibrary{decorations.markings} % You need this for q2
% From package documentation, pg 29, change ‘ to ` (2 instances)
\catcode`\@=11
\tikzset{
ddbond/.style args={#1}{
draw=none,
decoration={%
markings,
mark=at position 0 with {
\coordinate (CF@startdeloc) at (0,\dimexpr#1\CF@double@sep/2)
coordinate (CF@startaxis) at (0,\dimexpr-#1\CF@double@sep/2);
},
mark=at position 1 with {
\coordinate (CF@enddeloc) at (0,\dimexpr#1\CF@double@sep/2)
coordinate (CF@endaxis) at (0,\dimexpr-#1\CF@double@sep/2);
\draw[dash pattern=on 2pt off 1.5pt] (CF@startdeloc)--(CF@enddeloc);
\draw (CF@startaxis)--(CF@endaxis);
}
},
postaction={decorate}
}
}
\catcode`\@=12
\begin{document}
\chemfig{%
*6(-(-[:-72]?[a])(<[:-150]H)
-N*6(-[,,,,ddbond={+}](-[7,0.2,,,draw=none]{\scriptstyle+})
(-[:-108,,,1,ddbond={-}]N?[a]H2)
-[,,,,ddbond={+}]NH1-(<[:90]H)(-[:30](<[:90]OH)
-[:-30]*6(-[,,,2]HN-(=[:-90]O)-NH-(=[:30]O)-
=\phantom{L}))-?[b])-?[b](<[:90]H)--(<[:150]^{-}O_{3}SO)-)(<[:-150]H_3C)
}
\end{document}
只是对每个问题的一些小注释。编写得非常好的软件包文档提供了更多详细信息,我只会指出相关内容。
与
-[7,0.2,,,draw=none]{\scriptstyle+}
:这将在从 C 原子(这就是意思)+
拉开的不可见键的末端画出一个。-45deg
7
0.2*bond length
带有
-[,,,,ddbond={+/-}]
:这是从chemfig 文档,第 29 页。您需要\usetikzlibrary{decorations.markings}
在序言中使用才能使其工作,并在序言中添加相关部分。然后只需将ddbond={+}
或ddbond={-}
选项添加到相关键(在可选参数中的 4 个逗号后)。其中:该键从到 NH2
-[:-108,,,1]N?[a]H2
绘制,因此将其到达原子明确设置为 ,即 N 原子。(尝试从参数中删除 ,注意得到的结果)。+
1
1
与问题 3
-[,,,2]HN
类似,通过传递给第四个可选参数-M
,将到达原子设置为第二个原子(N) 。2
无关:以后请不要在单个 TeX.SE 问题中提出多个(不相关的)问题。这不仅会增加您的问题得到解答的机会,而且还可以让有类似问题的其他用户更轻松地找到此问题(和解决方案)。