我是 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 picture
和overlay
选项。唯一要注意的是,两个分子都有相同的基线。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}
(图片是一样的)