我必须移动节点的文本,使得文本位于节点的右侧,但我不知道如何将其与结合起来align=left
。
在以下 MWE(大大简化)中,节点(c)应该在节点左侧有文本,但我无法让left
tikz 命令将标签放置在正确的位置。
\documentclass[msmallroyalvopaper
]{memoir}
\usepackage{tikz}
\begin{document}
A \hfill Z
\begin{tikzpicture}
\node [ align=left] (top) at (-2,11) {action\\ plus} ;
\node (c) at (1.5,7)
[align=left] {soem first line\\ some second line} ;
\node(bottom) at (-1,4) [align=left] {a first line \\ a second line };
\draw (top) -- (c) -- (bottom);
\end{tikzpicture}
A \hfill Z
\end{document}
答案1
节点的文本将始终位于节点内部,正如 Ignasi 所说是节点。但 TikZ 可以选择为节点添加标签。(标签本质上是附加到父节点的第二个节点。)
因此
\node [label=foo] (a) at (1,1) {bar};
bar
放置在(1,1)处并a
指向,但您还会在上方bar
看到标签位置。foo
bar
您可以使用例如设置标签相对于父节点的位置
\node [label=left:foo] ...
除了left
、above left
等之外,还可以指定角度。
要向标签节点添加选项,可以使用
\node [label={[<options>]left:foo}] ...
请注意整个标签周围的括号。
align=left
因此,要在空节点的左侧有一个多行标签:
\node [label={[align=left]left:soem first line\\ some second line}] (c) at (1.5,7) {};
完整示例:
\documentclass[msmallroyalvopaper
]{memoir}
\usepackage{tikz}
\begin{document}
A \hfill Z
\begin{tikzpicture}
\node [align=left] (top) at (-2,11) {action\\ plus} ;
\node [label={[align=left]left:soem first line\\ some second line}] (c) at (1.5,7) {};
\node [align=left](bottom) at (-1,4) {a first line \\ a second line };
\draw (top) -- (c) -- (bottom);
\end{tikzpicture}
A \hfill Z
\end{document}