将 TikZ 节点的文本定位在东南角附近

将 TikZ 节点的文本定位在东南角附近

我想制作一个自定义的 TikZ 节点类型(自定义 Latex 宏也可以),它是一个矩形,文本位于其东南角附近。

考虑下面的脚本和相应的输出

\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
  \coordinate (PT) at ($(0,0)$) ;
  \node[draw, black, thick, minimum width =3.0cm,
        minimum height=4.2cm] at (PT) {Some fancy text};
\end{tikzpicture}

\end{document}

这给出

在此处输入图片描述

我想要一个类似下图的矩形节点(抱歉,我在 Inkscape 中构建了这个节点,所以它只近似于上面的矩形)。请注意,我希望文本是多行的并且居中对齐。

在此处输入图片描述

答案1

这是实现此目的的一种方法。基本步骤:

  • 反转任务,即从节点开始
  • align=center提供格式,同时\\控制换行符
  • 最后,绘制一些线,从 开始(T.south east),使用 的增量++,以结果作为下一个起点

您可以将其转换为,它以文本、高度和宽度(3 个参数)作为参数;在手册中\pic搜索。args

结果

\documentclass[10pt,border=3mm,tikz]{standalone}
\begin{document}

 \begin{tikzpicture}
    \node[align=center] (T) at (0,0) {Some\\fancy text};
    \draw (T.south east) -- ++(0,3.5) -- ++(-2.9,0) -- ++(0,-3.5) -- cycle;
 \end{tikzpicture}

\end{document}

答案2

这是另一种方法:

  • 将节点(T)放在第一位
  • 在 (T.东南) 处绘制一个宽度为负的矩形

结果

\documentclass[10pt,border=3mm,tikz]{standalone}
\begin{document}

 \begin{tikzpicture}
    \node[align=center] (T) at (0,0) {Some\\fancy text};
    \draw (T.south east) rectangle (-3,2);
 \end{tikzpicture}

\end{document}

相关内容