问题描述
当我尝试在 jupyter notebook markdown cell 中编写数学函数时,在使用 Latex 转换为 PDF 的过程中,它给出了数百行不完整的不可读错误消息。如果我删除这个数学函数,它就可以正常工作,即使使用其他数学函数也是如此。似乎有一些奇怪的相互作用与乳胶试图阅读这个。有人能注意到为什么吗?
$$
m_{M,n}(x;\Theta_{1},..,\Theta_{M},D_{n}) = \left\{
\begin{array}\\
1 & if \frac{1}{M} \sum \limits _{j=1} ^{M} m_{n}(x;\Theta_{j},D_{n}) > 1/2 \\
0 & otherwise
\end{array}
\right.
$$
The output is supposed to look like this
解决方法
您的 LaTeX 代码无效。 array
环境期望传递一个对齐参数,例如 \begin{array}{ll}
表示两列左对齐。
此外,第一行中的 \\
根本不是必需的。
工作代码是:
$$
m_{M,n}(x;\Theta_{1},..,\Theta_{M},D_{n}) = \left\{
\begin{array}{ll}
1 & \mathrm{if}\; \frac{1}{M} \sum \limits _{j=1} ^{M} m_{n}(x;\Theta_{j},D_{n}) > 1/2 \\
0 & \mathrm{otherwise}
\end{array}
\right.
$$
但为什么它可以在 Jupyter Notebook 中工作?
这是因为 Jupyter Notebook 使用 MathJax,另一个 TeX 实现,当您不通知 cc
对齐时,默认情况下使用 array
。因此,Jupyter Notebook(或 MathJax)真的不在乎您的代码是否缺少它。
然而,在 LaTeX 方面,情况完全不同。在 LaTeX 中,任何用 {}
传递的参数都是必需的(与 []
相反,这是可选的),所以当你写 \begin{array}\\
时,TeX 试图扩展 \\
标记作为对齐参数,这显然会引发错误(首先是因为 \\
不是预期的,然后是因为您只传递了一个参数并试图使用两列)。