TikZ 节点内部的对齐方程。

TikZ 节点内部的对齐方程。

如何创建一个包含对齐数学方程式的树节点?

\begin{align}
\end{align}

不起作用

\begin{minipage}{100}
  \begin{align}
    ...
  \end{align}
\end{minipage}

给出了很大的余地,我不想手动调整 100。

shapes tikz 库中的 \nodepart 似乎有点过度,并且不进行对齐。

有任何想法吗?

答案1

您可以使用aligned节点内有内联数学的环境,节点的大小会自动计算。下面是一个树中存在此类节点的小示例:

\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\begin{document}
\begin{tikzpicture}[every node/.style={rectangle,draw}]
\node {Example:}
  child {node {%
  $\begin{aligned}
     a &= bx + c\\
     a+b &= d +1
  \end{aligned}$}};
\end{tikzpicture}
\end{document}

输出:

替代文本

答案2

编辑

正如 Zarko 在评论中指出的那样,text width节点的选项已经定义了 minipage。因此,minipage除非您希望 minipage 宽度与节点宽度不同,否则环境是多余的。


我知道这已经很旧了,但是,为了将来的参考,如果您想对您的方程式进行编号或真的想使用一个align环境,您可以将其放在里面,minipage并将节点text width和小页面宽度属性指定为您合适的任何内容。

\documentclass[border=0.5cm]{standalone}
\usepackage{tikz}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
    % These are needed to remove the vertical space around above and below
    % the align and flalign environments
    \setlength{\abovedisplayskip}{0pt}
    \setlength{\belowdisplayskip}{0pt}

    \node [rectangle, draw] (example) {Examples:};
    \node [rectangle, draw, right=1cm, text width=4cm] (eq1) at (example.east) {
        \begin{minipage}{\textwidth}
            \begin{align}
                x + y &= 1 \\
                x - 2y &= 1
            \end{align}
        \end{minipage}
    };
    \node [rectangle, draw, below=0.5cm, text width=4cm] (eq2) at (eq1.south) {
        \begin{minipage}{\textwidth}
            \begin{flalign}
                x + y &= 2& \\
                x - 2y &= 2&
            \end{flalign}
        \end{minipage}
    };
    \draw [->, line width=1pt] (example) -- (eq1);
    \draw [->, line width=1pt] (example) |- (eq2);
\end{tikzpicture}
\end{document}

这个例子还包括flalign,因为我相信它看起来比align节点有边框时更好。

在此处输入图片描述

相关内容