如何将文本限制在 tikzpicture 中的矩形内?

如何将文本限制在 tikzpicture 中的矩形内?

我有一份清单矩形块有一个文本颜色和大小(开始y 尺寸x 开始, 和x 尺寸)。我希望文本位于矩形的中心,这样它就不会超出矩形的范围。

目前我正在使用 \\文本以确保文本适合,但这需要太多的调整,我更希望它们自动适合。这是我当前的代码:

\foreach \text/\color/\ystart/\ysize/\xstart/\xsize in \rectangularblocks {
    \filldraw[fill=\color] (\xstart, \ystart) rectangle (\xstart+\xsize, \ystart+\ysize);
    \draw (\xstart+\xsize/2, \ystart+\ysize/2) node[align=center] {\text};
}

根据我看到的其他答案,这可以通过两种方式完成:

  1. 通过打开换行并将文本限制为矩形的大小。
  2. 通过缩放文本以适合矩形。

但我无法想出可以同时实现这两点的代码(并将文本保持在矩形的中心)。我更喜欢 #1,因为这意味着我不必在我的文本

答案1

我会将其设置为所需的宽度,然后根据需要缩小。手动执行此操作可能比尝试将其与 TikZ 设置集成更容易。

\node {%
 \setkeys{Gin}{keepaspectratio}%
 \resizebox*{\xsize}{\ysize}{%
 \begin{minipage}{\xsize}%
    \centering
    \text
 \end{minipage}%
 }%
}

如果您愿意进行一些自动计算并且不介意多次处理文本,那么您还可以进行更复杂的计算以找出完美的包装与缩放比率。

相关内容