我正在开发一个系统,我想在其中绘制一个矩形并构建该矩形的内容。我正在使用 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}