2009-10-16 5 views
23

Я пытаюсь добавить уравнение в новую строку. Проблема в том, что уравнение слишком длинное для линии, и мне нужно разбить его вручную. В противном случае он просто накладывается на правый столбец или на правильные поля (и выглядит уродливым ...). Есть ли способ, которым 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*} 

Проблематика линия является первой линией, которая слишком долго.

+0

Это не то, что выровняно * означает: линии рассматриваются как отдельные уравнения, а это (ИМО) одно уравнение. Используйте \ [\ begin {split} .... \ end {split} \] вместо. Таким образом, если вы решите пронумеровать все, блок получит одно число, вместо трех. – Martijn

ответ

13

Пакет breqn предназначен для автоматической смены длинных уравнений. Он работает очень хорошо в большинстве ситуаций, но он не столь зрелый, как пакет amsmath. Вот как бы вы написать пример уравнение:

 
\documentclass{article} 
\usepackage{breqn} 
\begin{document} 
\begin{dmath} 
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{dmath} 
\end{document} 

Примечания нет никаких разметок для выравнивания или символа новой строки, но результат выглядит по существу такие же, как если бы вы использовали align.

+0

Вау! Это работает действительно очень хорошо! Это соответствует всей идее латекса, не нужно беспокоиться, если ваш код находится в небольшом формате шрифта с несколькими колонками или в виде большого столбца с одним столбцом. Благодаря! – Anna

+0

Поиграв с ним немного больше, я вижу, что это не панацея, и иногда мне нужно использовать среду разделения.Но это все равно. – Anna

0

Насколько я знаю, это невозможно. При работе внутри дисплея вы несете ответственность за разрывы строк. Как разбить строку и как продолжить на следующей строке в случае скобок, это трудный вопрос для людей (проверьте, например, соответствующий раздел в Grätzer, «Math into LaTeX»), не говоря уже о компьютере.

Пример: , когда вы нарушаете первую строку после \ слева (в конце следующей строки вам нужно a \ right. И в конце следующей строки (в противном случае вы получите сообщение об ошибке). , вы хотите начало следующей строки будет дальше вправо, чем кронштейн создаваемого \ слева (

+0

Я не уверен, что согласен с этим. Латекс действительно удачно размещает слова и предложения в пределах полей. +1 для наконечника начала и конца. – Anna

+0

breqn действительно удается решить проблему достаточно хорошо. И если/когда он пойдет не так, вы всегда можете разбить его вручную. –

1

стандартный подход, который я использовал в прошлом, является eqnarray см., например this page.

+0

eqnarray кажется приятным. Я не уверен, что это лучше, чем раскол или нет, и почему. – Anna

+3

Не используйте 'eqnarray'! http://www.tug.org/pracjourn/2006-4/madsen –

+0

Фактически, 'align' и' align * ', семейство сред, используемых OP, являются способом перехода, когда вы хотите что-то использовать как 'eqnarray'. – njsg

10

Я обычно предпочитаю обрабатывать это с помощью пакета amsmath и с использованием структуры split. Там есть куча полезных структур для разделения equatio ns через линии, но это, как правило, самый простой в использовании.

Многие установки TeX уже имеют пакет, но вы также можете получить его от the AMS website.

+0

Спасибо за ссылку на сайт ams. У него есть некоторые jems внутри. – Anna