如何将节点置于 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}