bond
我在名为(在 内定义)的节点和其下方的\chemfig
节点之间绘制一个箭头。一切似乎都很好,直到我引入任何具有负-坐标的元素。S
y
这是一个不错的例子:
%% First MWE
\documentclass{standalone}
\usepackage{chemfig}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (4,0);
\node (hydrogen) at (2,1.5) {\chemfig{[:30]H-[@{bond}]H}};
\node (S) at (2,0.25) {S};
\draw[->] (bond) -- (S);
\end{tikzpicture}
\end{document}
产生这样的结果:
当我引入一条定义节点的单行(2,-0.5)
(显然问题出在负坐标)时,会发生以下情况:
%% Second MWE
\documentclass{standalone}
\usepackage{chemfig}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (4,0);
\node (hydrogen) at (2,1.5) {\chemfig{[:30]H-[@{bond}]H}};
\node (S) at (2,0.25) {S};
\draw[->] (bond) -- (S);
\node (negative) at (2,-0.5) {"Negative" node};
\end{tikzpicture}
\end{document}
因此显然创建一个新节点会扰乱箭头的坐标。
我思考我所做的是被允许的,因为chemfig
手册上说:
这是通过使用语法“
@{<argument>}
”标记电子移动箭头的出发点和到达点来实现的。此语法允许tikz
放置节点,并使该节点在命令参数之外可\chemfig
访问
答案1
这可能会为你指明正确的方向——chemmove
定义一个单独的scope
,而没有它就等于将一个嵌套tikzpicture
在另一个里面,从而导致错误
\documentclass{article}
\usepackage{chemfig}
\usetikzlibrary{positioning}
\begin{document}
{\chemfig{[@{bond}:30]H-[]H}}
\chemmove{
\node[below=1cm of bond] (S) {S};
\draw[->](bond) --(S);
\node[below=2mm of S](negative){Negative node};
}
\end{document}