我问了一个在 TeX StackExchange 上出现过多次的问题,但似乎没有一个答案适合我的用例。
我正在尝试以编程方式在很长的方程式中引入换行符,这些换行符通常发生在\left
\right
对之间或中\sqrt
。我正在使用 Mathjax 进行渲染(使用 Jupyter Notebook),这意味着我只有 Latex 的一个子集实现,并且无法使用诸如之类的包breqn
。
这是我的示例代码:
\begin{aligned}
\sqrt{a + b + c + d + e + f + g} &=
\sqrt{243324234.00000 + 234324.00000000000 +\\
2342348987987897987.00000000000 + 32234234.00000000000000 +\\
20909.0000000000000000 + 12321.000000} &= 42
\end{aligned}
(我实际上并没有使用那么多小数位的数字,我只是需要为我的例子填充空间;尽管如此,我使用了许多类似于此的长数字)。
现在,奇怪的是它在屏幕上呈现得很好。但是当我使用 xelatex (通过nbconvert
) 将其编译为 PDF 时,我收到以下错误:
nbconvert failed: PDF creating failed, captured latex output:
Failed to run "xelatex .\notebook.tex -quiet" command:
notebook.tex:421:
notebook.tex:421: Missing $ inserted
notebook.tex:422: Missing } inserted
notebook.tex:424: Missing { inserted
notebook.tex:425: Missing
以下是我还尝试过的方法:
\sqrt 对于一行来说太长了- 但是,我无法访问\multlined
Mathjax 内的环境。
长 \sqrt 两行-\split{}
创建一个牢不可破的框,无论是在屏幕上还是在编译时,它都会从页面上流出。
这是通过编程创建的 Latex 输出。我尝试将每个方程放入其自己的\align
环境(如果是“小”方程)或\multline
环境(如果是“大”方程),这种方法可行,但这不是好的 Latex 做法,它会阻止方程之间的任何实际对齐和间距调整。我倾向于不这样做。
那么,给定这些参数,是否有可能以编程方式在 AMS 数学环境中的方程式中引入半任意换行符并进行编译?
非常感谢您的任何建议或帮助。
答案1
这可能有点离题,因为 MathJax不是LaTeX,而是一个网络方程扩展,它接受从 LaTeX 继承的标记语言作为其输入样式之一。
在 MathJax 中,您可以直接multline
在其他多行数学环境中使用环境。请注意{}
添加以在 周围保持适当的间距+
。
\begin{aligned}
\sqrt{a + b + c + d + e + f + g} &=
\sqrt{\begin{multline}243324234.00000 + 234324.00000000000 + {}\\
2342348987987897987.00000000000 + 32234234.00000000000000 + {} \\
20909.0000000000000000 + 12321.000000\end{multline}} &= 42
\end{aligned}
答案2
好的,按照 muzumuzhi Z 的建议,我尝试了他们的建议,但替换了,gathered
似乎multline
有效。
另一件重要的事情是我需要确保我也在我的环境\[ ... \]
中使用它。aligned
这是我修改后的代码:
\[
\begin{aligned}
\sqrt{a + b + c + d + e + f + g} =
\sqrt{\begin{gathered} 233324234.00000 + 234324.00000000000 +{}\\
2342348987987897987.00000000000 + 32234234.00000000000000 +{}\\
20909.0000000000000000 + 12321.000000 \end{gathered}} &= 42
\end{aligned}
\]
有趣的是,这似乎也适用于\left( ... \right)
换行符!