鸟嘌呤和胞嘧啶的互补对

鸟嘌呤和胞嘧啶的互补对

我是 TikZ 的新手,需要帮助绘制以下鸟嘌呤和胞嘧啶互补对的图表。

鸟嘌呤和胞嘧啶的互补碱基对

我正在尝试按以下方式进行操作,但不知道如何旋转和连接链接。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{chemfig}
\usepackage{tikz}

\title{Chemistry}
\begin{document}
\begin{tikzpicture}[help lines/.style={thin,draw=black!50}]
\chemfig{*6((-H_2N)=N-*5(-\chembelow{N}{H}-=N-)=-(=O)-HN-[,,2])}
\end{tikzpicture}
\end{document}

答案1

包裹chemfig通过 TikZ 为化学提供强大的界面(需要运行两次 LaTeX):

\documentclass{article}
\usepackage{chemfig}
\begin{document}
  \begin{tikzpicture}
    \setatomsep{2em}
    \path
      node[anchor=base east] (Guanine)
      {\chemfig{%
        [:180]N(-[:0]@{L2}H)*6(-(=@{L1}O)-(*5(-N=-N(-R)-))=-N=%
        (-N(-[:0]@{L3}H)-[:240]H)-)}}
      (Guanine.base east)
      node[anchor=base west, xshift=-.15em] (Cytosin)
      {\chemfig{%
        [:-30]@{R2}N*6(-(=@{R3}O)-N(-R)-=-(-N(-[:180]@{R1}H)-[:60]H)=)}}
    ;
    \chemmove{%
      \foreach \i in {1, 2, 3} {
        \draw[-, dashed, shorten <=.2em, shorten >=.2em] (L\i) -- (R\i);
      }%
    }
    \path (Guanine.south west) (Cytosin.north east); % update bouning box
    \path[inner sep=0pt, below=1.5ex]
      (Guanine.south) node {Guanine}
      (Cytosin.south |- Guanine.south) node {Cytosine}
    ;
  \end{tikzpicture}
\end{document}

结果

答案2

正如前面提到的,chemfig它非常强大。它非常强大,如果将氢桥绘制为键(从chemfig的角度来看,使用键的第四个可选参数使它们变为虚线),并且将两个分子绘制为一个公式,则实际上不需要额外的 TikZ chemfig

但即使你分别绘制它们,你也可以利用这样一个事实:你可以在公式中为放置原子的节点命名chemfig( -语法)。稍后可以在另一个带有包装器的@{<name>}tikzpicture 中引用这些节点remember pictureoverlay选项。唯一要注意的是,两个分子都有相同的基线。chemfig\chemmove

\documentclass{article}
\usepackage{chemfig}
\begin{document}

\chemname
  {\chemfig{@{H1}H-[:180](-[:-120]H)-[:120]*6(-N(-@{H2}H)-(=@{O3}O)-(*5(-N=-N(-R)-))=-N-)}}
  {Guanine}
\qquad
\chemname
  {\chemfig{@{O1}O=[:60]*6(-N(-R)-=-(-N(-[::60]@{H3}H)-[::-60]H)=@{N2}N-)}}
  {Cytosine}
\chemmove[dashed]{\draw (H1) -- (O1) (H2) -- (N2) (O3) -- (H3) ;}

\end{document}

在此处输入图片描述

你甚至可以将分子作为亚摩尔:

\documentclass{article}
\usepackage{chemfig}

\definesubmol{guanine}{
  @{hb-gua1}H-[:180](-[:-120]H)
  -[:120]*6(
    -N(-@{hb-gua2}H)
    -(=@{hb-gua3}O)
    -(*5(-N=-N(-R)-))
    =-N-
  )
}

\definesubmol{cytosine}{
  @{hb-cyt1}O=[:60]*6(
    -N(-R)
    -=-(
      -N(-[::60]@{hb-cyt3}H)
      -[::-60]H
    )
    =@{hb-cyt2}N-
  )
}

\begin{document}

\chemname{\chemfig{!{guanine}}}{Guanine}
\qquad
\chemname{\chemfig{!{cytosine}}}{Cytosine}
\chemmove[dashed]{\foreach \i in {1,2,3} { \draw (hb-gua\i) -- (hb-cyt\i) ;}}

\end{document}

(图片是一样的)

相关内容