TikZ:将节点标记到路径上

TikZ:将节点标记到路径上

我使用to语法将节点设置在水平中间与其他节点之间。我的问题是,标签不适合这个中间节点。比较图片中节点 2 和节点 3 的标签:

在此处输入图片描述

相应的 mwe 如下:

\documentclass[border=2pt]{standalone} 
\usepackage{tikz}

\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
    \tikzset{myRec/.style = {draw, rectangle, minimum height=5mm, minimum width=5mm}}

    \node (nd1) [myRec] {1};
    \node (nd2) [myRec, below right=of nd1, label=above:x] {2};

    \path (nd2) to node (nd3) [myRec, label=above:x] {3} (nd2 -| nd1);
\end{tikzpicture}
\end{document}

我使用标签,因为我创建了一个自己的形状,它需要位于节点 2 的水平位置上。

答案1

杰克在他的评论中已经提出了一个解决方案,但这里还有另一个。

\path (nd1.east|-nd2) -- (nd2.west) node[pos=0.5, myRec, label={above:x}] (nd3) {3};

或者

\path (nd1|-nd2) -- (nd2.center) node[pos=0.5, myRec, label={above:x}] (nd3) {3};

两者都将一个节点及其放置在和center之间的水平线的中间 。n1n2

顺便说一句,我正在使用 CVS 版本,并且节点 3 标签没有问题。

\documentclass[border=2pt,tikz]{standalone} 
\usepackage{tikz}

\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
    \tikzset{myRec/.style = {draw, rectangle, minimum height=5mm, minimum width=5mm}}

    \node (nd1) [myRec] {1};
    \node (nd2) [myRec, below right=of nd1, label=above:x] {2};

%\path (nd2) to node (nd3) [myRec, label=above:x] {3} (nd2 -| nd1);

    \path (nd1.east|-nd2) -- (nd2.west) node[pos=0.5, myRec, label={above:x}, anchor=center] (nd3) {3};

%\path (nd1|-nd2) -- (nd2.center) node[pos=0.5, myRec, label={above:x}, anchor=center] (nd3) {3};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容