在 TikZ 矩形中添加文本

在 TikZ 矩形中添加文本

下面的代码绘制了三个嵌套的矩形。然后我想使用节点添加文本。不知何故,矩形的坐标与节点的坐标不一致。要将一些文本放在最大的矩形中,我假设 (0.5, -0.5) 可以完成这项工作。但现在文本在矩形之外。但为什么呢?我怎样才能将每个段落放在每个矩形的左上角?有没有更好的方法呢?

\documentclass[border=10]{standalone}
\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\def\xa{(0,0)} \def\ya{(15.0,-5)}
\def\xb{(5,-0.2)} \def\yb{(14.8,-4.8)}
\def\xc{(10,-0.4)} \def\yc{(14.6,-4.6)}

\begin{tikzpicture}
    % Draw boxes
    \draw \xa rectangle \ya ;
    \draw \xb rectangle \yb;
    \draw \xc rectangle \yc;
    % DRAW LABELS 
    \node at (0.5,-0.5) [text width=4cm] {\tiny\lipsum[66]};
    \node at (6,-2) [text width=4cm] {\tiny\lipsum[66]};
    \node at (10,-2) [text width=4cm] {\tiny\lipsum[66]};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

像这样?

在此处输入图片描述

对于上图,仅使用节点(这比绘制矩形和嵌套带有文本的节点更简单)。文本节点相对于每个节点定位,通过使用库进行绘制fit

\documentclass[tikz, border=10]{standalone}
\usetikzlibrary{fit, positioning}
\usepackage{lipsum}

\begin{document}
    \begin{tikzpicture}[
    node distance = 0mm and 1mm,
box/.style = {text width=4cm, font=\tiny},  % define nodes style
                    ]
\node (n1) [box,draw] {\lipsum[66]};
\node (n2) [box,left=of n1] {\lipsum[66]};
\node (n3) [box,left=of n2] {\lipsum[66]};
%
\node (n4) [draw,fit=(n1) (n2)] {};
\node (n5) [draw,fit=(n3) (n4)] {};
\end{tikzpicture}

\end{document}

注意:字体大小在节点样式中定义。通过此节点中的基线跳过考虑所选的字体大小。

相关内容