使用 chemfig 展示化学键和原子位置

使用 chemfig 展示化学键和原子位置

我一直在研究柱孢藻蛋白的结构chemfig。其结构如下:在此处输入图片描述

我用下面的代码绘制它:

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

结果是:

在此处输入图片描述

我的问题:

  1. 我怎样才能将正电荷从结构中取出,就像例子中的那样?
  2. 如何在 N、NH1 和 NH2 之间用一条虚线画出双键?
  3. 我怎样才能正确地将 NH2 原子与外面的氢连接起来?
  4. 我怎样才能用 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}

只是对每个问题的一些小注释。编写得非常好的软件包文档提供了更多详细信息,我只会指出相关内容。

  1. -[7,0.2,,,draw=none]{\scriptstyle+}:这将在从 C 原子(这就是意思)+拉开的不可见键的末端画出一个。-45deg70.2*bond length

  2. 带有-[,,,,ddbond={+/-}]:这是从chemfig 文档,第 29 页。您需要\usetikzlibrary{decorations.markings}在序言中使用才能使其工作,并在序言中添加相关部分。然后只需将ddbond={+}ddbond={-}选项添加到相关键(在可选参数中的 4 个逗号后)。

  3. 其中:该键从到 NH2-[:-108,,,1]N?[a]H2绘制,因此将其到达原子明确设置为 ,即 N 原子。(尝试从参数中删除 ,注意得到的结果)。+11

  4. 与问题 3-[,,,2]HN类似,通过传递给第四个可选参数-M ,将到达原子设置为第二个原子(N) 。2

化学无花果

无关:以后请不要在单个 TeX.SE 问题中提出多个(不相关的)问题。这不仅会增加您的问题得到解答的机会,而且还可以让有类似问题的其他用户更轻松地找到此问题(和解决方案)。

相关内容