标签的位置和对齐

标签的位置和对齐

我必须移动节点的文本,使得文本位于节点的右侧,但我不知道如何将其与结合起来align=left

在以下 MWE(大大简化)中,节点(c)应该在节点左侧有文本,但我无法让lefttikz 命令将标签放置在正确的位置。

\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看到标签位置。foobar

您可以使用例如设置标签相对于父节点的位置

\node [label=left:foo] ...

除了leftabove 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}

相关内容