TIKZ:从上向下书写文本

TIKZ:从上向下书写文本

我的简单问题是如何使用 tikz 在列中设置一些文本,例如

+---+
| A |
| B |
| C |
+---+

我不想旋转文本,因此无法使用旋转选项或沿路径设置文本方法。能给我提示一下如何正确操作吗?

答案1

正如我在评论中所说, 中几乎允许任何内容node;特别是多行文本。唯一的问题是节点需要知道如何垂直对齐文本。这由键控制align(PGF 手册(PGF2.10)中的第 16.4.3 节)。在下面,我选择了center。使用锚点可以轻松获取节点的大小。为了确保锚点足够大以使生成的形状不会遮挡文本,我选择了椭圆作为节点形状。正如您所说,可能不值得为一个符号设计一个全新的形状,所以我手动绘制了一些与您描述的内容大致相似的东西。为了正确绘制弧线,我编写了一个小辅助宏来测量两点之间的距离。这是因为弧线是使用半径指定的,但我们想在某些点之间绘制弧线。因此,我们首先测量点,然后使用测量值指定半径。

\documentclass[border=10]{standalone}
%\url{http://tex.stackexchange.com/q/26028/86}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\makeatletter
\newcommand{\measure}[2]{%
  \tikz@scan@one@point\pgfutil@firstofone#1\relax
  \pgf@xa=-\pgf@x\relax
  \pgf@ya=-\pgf@y\relax
  \tikz@scan@one@point\pgfutil@firstofone#2\relax
  \advance\pgf@x by \pgf@xa\relax
  \advance\pgf@y by \pgf@ya\relax
  \edef\xdistance{\the\pgf@x}%
  \edef\ydistance{\the\pgf@y}%
}
\makeatother

\begin{document}
\begin{tikzpicture}
\node[align=center,ellipse] (a) {this\\is\\some\\text\\arranged\\vertically};
\measure{(a.west)}{(a.north)}
\draw (a.east) |- (a.north) -| (a.west) arc[x radius=\xdistance, y radius=\ydistance, start angle=-180, end angle=0];
\end{tikzpicture}
\end{document}

结果:

节点中的垂直文本

相关内容