下面的代码绘制了三个嵌套的矩形。然后我想使用节点添加文本。不知何故,矩形的坐标与节点的坐标不一致。要将一些文本放在最大的矩形中,我假设 (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}
注意:字体大小在节点样式中定义。通过此节点中的基线跳过考虑所选的字体大小。