我盯着这个看了将近一个小时,但不知道我的语法错误在哪里
\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
- 在带有
c
、l
或r
类型的列的表中。 - 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}