如何在 tikzpicture 中定位内容?

如何在 tikzpicture 中定位内容?

我正在开发一个系统,我想在其中绘制一个矩形并构建该矩形的内容。我正在使用 tikz 绘制一个虚线矩形,但在将内容定位到绘制的矩形内时遇到了很大困难。下面是我遇到的问题的一个简单示例:

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
        \draw[dashed] (0, 0) rectangle node{this text is centered but I want it at the top left} (4.4in, 2.25in);
    \end{tikzpicture}

    \vspace{1cm}

    \begin{tikzpicture}
        \draw[dashed] (0, 0) rectangle (4.4in, 2.25in);
        \node at (0,0) {this text is centered at the bottom left and not fully in the container};
    \end{tikzpicture}

    \begin{tikzpicture}
        \draw[dashed] (0, 0) rectangle (4.4in, 2.25in);
        \node at (4,5.5) {this text is where I want it, but this is brute force};
    \end{tikzpicture}
\end{document}

由此产生了如下结果:

示例输出

有没有一种方法可以让我始终将内容从框架的左上角开始定位,而无需强制使用坐标?我没有在文档中看到有关此内容的任何内容。如果有更好的方法可以做到这一点,我愿意接受不使用 TikZ 的解决方案。如果这很重要的话,我放入这些矩形中的实际内容要复杂得多。值得注意的是,它不是图片。

答案1

我不知道我是否正确理解了你的问题。

我的理解是:在矩形中,如果节点写在坐标之间,则始终位于矩形的中心(坐标的中间)。要将其放置在左上角顶点旁边,该顶点只需是第一个坐标即可。

\documentclass{article}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
        \draw[dashed] (0, 2.25in)  node[anchor=north west]{this text is centered but I want it at the top left}rectangle (4.4in, 0);
    \end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

如果您需要多行文本。请注意,文本区域为 2.25 英寸 x 4.4 英寸,但虚线框略大(边界框为 0.666em + 0.8pt)。

\documentclass{article}
\usepackage{tikz}
\usepackage{blindtext}% radnom text

\begin{document}
    \begin{tikzpicture}[outline/.style={draw=black,dashed}]
        \node[outline]{\parbox[c][2.35in][t]{4.4in}{\blindtext}};
    \end{tikzpicture}

\end{document}

相关内容