Я работаю над системой, в которой я хочу нарисовать прямоугольник и построить содержимое этого прямоугольника. Я использую 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 дюйма на 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}