以下问题是那篇帖子。
假设有五个节点,排列成三行。我想按以下模式排列这些节点:
|----Node A----| |Node B|
|Node C||Node D|
|----Node E----|
控制节点 E 的位置对我来说不是很直观。
使用anchor=north west
结果处于不正确的水平位置:
\node [block_large, below=0.1cm of col1_row2, anchor=north west] (col1_row3) {
\textbf{Node E}\\
\textit{Foo:} Bar\\
\textit{Baz:} Qux
};
添加右移 ( right=-2.11
) 会导致垂直位置不正确:
\node [block_large, below=0.1cm of col1_row2, anchor=north west, right=-2.11] (col1_row3) {
\textbf{Node E}\\
\textit{Foo:} Bar\\
\textit{Baz:} Qux
};
如何重新建立节点 E 的对齐?
答案1
您仍然可以遵循相对定位。我稍微清理了一下不相关的部分。
\documentclass[tikz]{standalone}
\tikzset{block large/.style={rectangle, draw, text width=8cm, inner xsep=0.25cm,
rounded corners, text height=0.4cm, text depth=1.25cm,
node contents=\mycontent{#1},name=#1
},
block medium/.style = {block large=#1,text width=3.75cm}
}
\def\mycontent#1{
\textbf{Node #1}\\
\textit{Foo:} Bar\\
\textit{Baz:} Qux
}
\begin{document}
\begin{tikzpicture}
\node[block large =A];
\node[block medium=B,anchor=north west,at={([yshift=-1mm]A.south west)}];
\node[block medium=C,anchor=north east,at={([yshift=-1mm]A.south east)}];
\node[block large =E,anchor=north west,at={([yshift=-1mm]B.south west)} ];
\end{tikzpicture}
\end{document}
答案2
和我的类似代码回答你之前的问题您还可以使用 获得此对齐tcolorboxes
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\newcommand{\mytext}[1]{\textbf{Node #1}\\\textit{Foo:} Bar\\\textit{Baz:} Qux}
\begin{document}
\begin{tcbitemize}[raster equal height=rows, raster columns=3, notitle, colback=white]
\tcbitem[raster multicolumn=2] \mytext{A}
\tcbitem \mytext{B}
\tcbitem \mytext{C}
\tcbitem \mytext{D}
\tcbitem[blankest] %We need an empty box to count three in a row
\tcbitem[raster multicolumn=2] \mytext{E}
\end{tcbitemize}
\end{document}