TikZ - 改善跨行对齐 - 续

TikZ - 改善跨行对齐 - 续

以下问题是那篇帖子

假设有五个节点,排列成三行。我想按以下模式排列这些节点:

|----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}

在此处输入图片描述

相关内容