如何使 tikz 矩阵单元中的节点居中?

如何使 tikz 矩阵单元中的节点居中?

如何将节点置于 tikz 矩阵单元的中间?

此 MWE:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikzset{mynode/.style={rectangle,draw,minimum width=2cm,minimum height=1cm}}
\begin{tikzpicture}
\matrix[row sep=1cm]{
\node[mynode] {A}; \\
\node[mynode] {B}; \node[mynode,right=2cm] {C}; \\};
\end{tikzpicture}
\end{document}

生产

在此处输入图片描述

如何让 A 节点位于 B 和 C 节点之间(但仍在上方)?我知道如何在不使用 tikz 矩阵的情况下做到这一点,但这是一个更复杂的图表,其中矩阵是布局其余部分的最简单方法。

答案1

还有一个解决方案,使用matrix库:

\documentclass[tikz, border=3.141592mm]{standalone}
\usetikzlibrary{matrix}

\begin{document}
    \begin{tikzpicture}
\matrix[matrix of nodes,
        nodes={draw, minimum width=2cm, minimum height=1cm},
        row sep=1cm]
{
\node {A};   \\
\node[left=5mm] {B}; \node[right=5mm] {C};\\
};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\tikzset{mynode/.style={rectangle, draw, minimum width=2cm, minimum height=1cm}}
\begin{tikzpicture}
\matrix[row sep=1cm]{
\node[mynode] {A}; \\
\node[mynode, left=0.5cm] {B}; \node[mynode, right=0.5cm] {C};\\
};
\end{tikzpicture}
\end{document}

三个矩形

答案3

带有矩阵单元的中心节点

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
    \tikzset{mynode/.style={rectangle,draw,minimum width=2cm,minimum height=1cm}}
    \begin{tikzpicture}
        \matrix[row sep=1cm]{
            \node[mynode] (B) {B}; \node[mynode,right=2cm] (C) {C}; \\};
        \node[mynode] at ($(B)!0.5!(C)+(0,2cm)$) {A};
    \end{tikzpicture}
\end{document}

相关内容