如何创建一个包含对齐数学方程式的树节点?
\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
节点有边框时更好。