在森林树节点中添加 align* 环境时出现此错误的原因是什么?

在森林树节点中添加 align* 环境时出现此错误的原因是什么?

我盯着这个看了将近一个小时,但不知道我的语法错误在哪里

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}

\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
  {\begin{align*}
      x &= 1
  \end{align*}}
]
\end{forest}    
\end{document}

编译后得到

! Missing \endgroup inserted.
<inserted text> 
\endgroup 
l.16 \end{forest}

我知道需要{....}在所有数学周围添加以保护它,这就是我所做的。如果我使用普通数学,它就可以工作

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}

\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
  {$x = 1$}
]
\end{forest}

\end{document}

没有错误。我还发现,如果我将对齐环境放在 minipage 中,错误就会消失:

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}

\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
  \begin{minipage}{2cm} 
  {\begin{align*}
      x &= 1
  \end{align*}}
  \end{minipage}
]
\end{forest}

\end{document}

没有错误。

那么为什么上面的第一个例子会出错呢?我知道我肯定犯了一些语法错误,但我就是不知道是什么错误。

TL 2022

更新

天哪!我找到了解决方法,但不知道为什么这样做会有效。只需,text width=3cm在它后面添加,现在就可以了。

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}

\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
   {\begin{align*}
      x &= 1
    \end{align*}}
   ,text width=3cm% ADDING THIS MAKES IT WORK
]
\end{forest}    
\end{document}

在此处输入图片描述

但为什么??

更新

aligned并没有真正实现我想要的效果。下面是一个例子

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}
\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
Write the ode as 
{$\begin{aligned}
y'+p(x)y&=q(x)\\
        &=f(x,y)
\end{aligned}$}
This is only possible if ode is linear in {$y$}
]
\end{forest}

\end{document}

在此处输入图片描述

我希望它看起来像这样

\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}
\usepackage{forest}
\useforestlibrary{edges}
\begin{document}

\begin{forest}
[   
Write the ode as 
{\begin{align*}
y'+p(x)y&=q(x)\\
        &=f(x,y)
\end{align*}
}
This is only possible if ode is linear in {$y$}
,text width=3cm
]
\end{forest}

\end{document}

在此处输入图片描述

但多亏了答案,我现在知道我需要为宽度添加特定值才能align*工作。所以我现在没问题了。我更改了代码以确保给出了特定的文本宽度,现在错误就消失了。

答案1

  • 节点中的显示样式数学始终需要定义的节点大小。例如,它在以下情况下不起作用:
    • 纯的standalone
    • 在带有clr类型的列的表中。
    • ETC
  • 我想知道,为什么需要在节点中显示样式?使用内联数学不是更简单吗?
\documentclass[crop,tikz]{standalone}
\usepackage{amsmath}

\usepackage{forest}
\useforestlibrary{edges}

\begin{document}

\begin{forest}
[root
    [{$\begin{aligned}
          x &= 1 \\[-1ex]
      x + y &= 2
    \end{aligned}$}]
]
\end{forest}
\end{document}

在此处输入图片描述

相关内容