【问题标题】:How do I break a long equation over lines?如何打破线条上的长方程?
【发布时间】:2009-10-16 13:43:47
【问题描述】:

我正在尝试在新行中添加一个方程式。问题是方程对线来说太长了,我需要手动打破它。否则,它只会重叠到右列或右边距(看起来很丑......)。 有没有办法 LaTeX 可以为我打破方程式,所以看起来不错?

我附上我的乳胶代码:

\begin{align*}
f(n)-f(0) &= A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0)-D(0)\cdot d\right) \\
          &= A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) \\
          &= A(n)-X-D(n)\cdot d
\end{align*}

有问题的行是第一行,它太长了。

【问题讨论】:

  • 这不是 align* 的含义:线条被视为单独的方程,而它是 (IMO) 一个方程。使用 [\begin{split} .... \end{split}] 代替。这样,如果您决定对所有内容进行编号,该块将获得一个编号,而不是三个。

标签: latex equation


【解决方案1】:

breqn 包旨在自动拆分长方程。它在大多数情况下都能很好地工作,但不如amsmath 包那么成熟。以下是您编写示例方程式的方式:

\documentclass{文章} \使用包{breqn} \开始{文档} \开始{数学} f(n)-f(0) = A(n)-B(n)-C(n)-D(n)\cdot d-\left(A(0)-B(0)-C(0) -D(0)\cdot d\right) = A(n)-0-X-D(n)\cdot d-\left(0-0-0-0\right) = A(n)-X-D(n)\cdot d \结束{数学} \结束{文档}

请注意,没有对齐或换行的标记,但输出看起来与您使用 align 时基本相同。

【讨论】:

  • 哇!那个真的很好用!这符合 Latex 的整体理念,无需担心您的代码是采用多列小字体格式还是单列大字体格式。谢谢!
  • 玩了一会儿,我发现它不是灵丹妙药,有时我也需要使用split环境。但这无论如何都很好。
【解决方案2】:

我通常更喜欢使用amsmath 包和split 结构来处理这个问题。里面有很多有用的结构可以跨行拆分方程,但这通常是最简单的。

许多 TeX 安装已经包含该软件包,但您也可以从 the AMS website 获取它。

【讨论】:

  • 感谢 ams 网站的链接。它里面有一些jems。
【解决方案3】:

我过去使用的标准方法是eqnarray。参见例如this page

【讨论】:

  • eqnarray 看起来不错。我不确定它是否比拆分更好,以及为什么。
  • 事实上,alignalign* 是 OP 使用的环境系列,当您想使用 eqnarray 之类的东西时,您可以选择。
【解决方案4】:

据我所知,这是不可能的。在显示器内工作时,您负责换行。如何换行,以及如何在括号中继续下一行,对于人类来说是一个棘手的问题(例如,检查 Grätzer 中的相关部分,“Math into LaTeX”),更不用说计算机了。

示例: 当你在 \left( 之后打破第一行时,你需要一个 \right. 在最后,和 \left. 在下一行的开头(否则你会得到一个错误)。此外,你想要开始比 \left(

产生的括号更靠右的下一行

【讨论】:

  • 我不确定我是否同意。 Latex 确实成功地将单词和句子很好地放置在空白处。 +1 开始和结束分割提示。
  • breqn 实际上很好地解决了这个问题。如果/当它确实出错时,你总是可以手动中断到套件。
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
  • 2011-02-23
  • 2022-11-16
相关资源
最近更新 更多