使用 TikZ 对齐节点

使用 TikZ 对齐节点

考虑一下:

错位节点

存在几个问题:

  1. 操作\exists符与以下节点 (a,b) 未水平对齐。
  2. foobar与其下方的节点之间以及 (a,b) 节点与其下方的节点之间的空间太小。
  3. 右箭头未与前后节点水平对齐。(我知道我可以用 TikZ 绘制箭头,这只是一个占位符。)

任何帮助解决这些问题的帮助都将不胜感激。这是目前的代码。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning,fit}

\begin{document}

\begin{tikzpicture}[
  node distance=3mm and 3mm,
  drs/.style={draw, rectangle split, rectangle split parts=2}
  ]
  \node[drs,align=left]
    { foo
      \nodepart{two}

        foobar \
        \tikz{
          \node (operator) {$\exists$};
          \node[drs,right=of operator]{
            a%
            \nodepart{two}{
              b%
            }
          };
        } \
        \tikz{
          \node[drs] (left side)
            { 1%
              \nodepart{two}
                2%
            };
          \node[right=of left side] (operator) {$\rightarrow$};
          \node[drs,right=of operator] (right side)
            { 3%
              \nodepart{two}
                4 \\
                5 \\
                6%
            };
        }
    };
\end{tikzpicture}


\end{document}

答案1

mid问题 1) 和 3):您可以使用节点的锚点来控制对齐。问题 2):您可以使用换行命令的可选参数\\;这是您的代码的修改版本,请根据需要随意更改长度:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.multipart,positioning,fit}

\begin{document}

\begin{tikzpicture}[
  drs/.style={draw, rectangle split, rectangle split parts=2}
  ]
  \node[drs,align=left]
    { foo
      \nodepart{two}
        foobar \\[.5em]
        \tikz{
          \node (operator) {$\exists$};
          \node[drs,right=2mm of operator.mid]{
            a%
            \nodepart{two}{
              b%
            }
          };
        } \\[.5em]
        \tikz{
          \node (operator) {$\rightarrow$};
          \node[drs,left=4mm of operator.mid] (left side)
            { 1%
              \nodepart{two}
                2%
            };
          \node[drs,right=4mm of operator.mid] (right side)
            { 3%
              \nodepart{two}
                4 \\
                5 \\
               6%
            };
        }
    };
\end{tikzpicture}

\end{document}

相关内容