\fbox{
\begin{tikzpicture}[scale=1,auto=center]
\node[circle,fill=gray!20] (n1) at (2,8) {Node A};
\node[circle,fill=gray!20] (n2) at (8,8) {Node B};
\foreach \from/\to in {n1/n2}
\draw (\from) -- (\to) node[draw=none,fill=none,font=\scriptsize,midway,below] {text below};
\end{tikzpicture}
}
该示例显示了如何将文本放在中间线的下方,但是如何在两个节点之间(同时)将文本写在中间线的下方和上方?...
答案1
好的,所以这基本上是一个关于如何以及何时可以放置的问题node
。
一般来说,您可以在路径上的任意位置多次应用任意节点。
\draw (-2,0) -- node {a} ++(2,0) -- node {b} ++(2,0);
midway
也可以通过将节点放置在右侧来规避使用可选后这--
使得能够同时构建非常复杂的路径和节点(如上例所示)。
评论中给出的简单解决方案是:
\begin{tikzpicture}
\draw (-2,0) -- node[below] {a} node[above] {b} ++(4,0);
\end{tikzpicture}
得出的结果是:
这也可以用于更复杂的路径和该路径上的节点放置:
\begin{tikzpicture}
\draw (-2,0) -- node[below] {a} ++(2,0) -- node[above] {b} ++(2,0);
\end{tikzpicture}
得出的结果是:
注意,节点位于 连接的两个点的中间--
。注意,节点必须放置在后以便--
放置在当前段的中间(否则它将被放置在节点之前的点)。
midway
但是,将节点放置在路径末尾也是完全没问题的。需要注意的是,midway
也可以放置在路径中间:
\begin{tikzpicture}
\draw (-2,0) -- ++(1,0) -- ++(1,0) node[midway,below] {a}
node[midway,above] {b} -- ++(2,0);
\foreach \x in {-2,-1,0,2}
\draw (\x,0) circle (3pt);
\end{tikzpicture}
产生的结果(添加圆圈以显示路径的控制点):
这在创建非直线时当然很有用。
作为一条评论,我想指出对every node
选项的兴趣,该选项可用于概括节点上的选项,即将every node/.style={red}
所有节点等同于node[red]
。
对于你来说,一个例子可能是:
\tikzset{every node/.style={font=\scriptsize}}
\begin{tikzpicture}[every node/.append style={midway}]
\draw (-2,0) -- ++(4,0) node[below] {a} node[above] {b};
\end{tikzpicture}
注意这里我如何在通用调用中实现该every node
样式tikzset
。这使得every node
全局全部 tikzpicture
环境节点。并且在tikzpicture
我使用.append style
时不会破坏任何先前的全局选项。以上产生:
注意\scriptsize
节点文本。