Системы уравнений: eqnarray vs. align
Изначально в LaTeX для оформления систем уравнений использовалось окружение eqnarray . Затем, в пакете amsmath появилось окружение align , решающее ту же задачу. Так что же лучше использовать?
Применение eqnarray может вызвать ряд проблем, а именно:
- несоразмерные расстояния вокруг символов отношений;
- длинные уравнения «наползают» на номера уравнений;
- проблемы с метками и ссылками.
Рассмотрим следующий пример:
Обратите внимание на расстояния вокруг знака ‘=’ в eqnarray . Вспомнив о том, что eqnarray — это разновидность массива, можно попытаться исправить это, используя \arraycolsep . Но при этом «поплывет» оформление других array-ев, например, матриц.
Так что на вопрос «что лучше использовать для оформления систем уравнений» есть однозначный ответ: избегайте eqnarray , используйте align .
Заметим, что окружение align , как и eqnarray , нумерует каждое уравнение системы. Если нужно, чтобы вся система имела единый номер, используйте окружение aligned совместно с equation . Сравните
Читайте также
Комментарии
Дмитрий Храмов
Компьютерное моделирование и все, что с ним связано: сбор данных, их анализ, разработка математических моделей, софт для моделирования, визуализации и оформления публикаций. Ну и за жизнь немного.
Математические окружения
Рассмотрим блочные математические окружения для работы с одним или несколькими уравнениями.
С первым окружением для отображения одного математического выражения без нумерации мы уже знакомы — это конструкция \[ … \] . Для использования нумерации при отображении одного выражения используется окружение equation.
Как было указано ранее, внутри уравнения можно поместить метку \label <метка>, с тем, чтобы в дальнейшем можно было сослаться на уравнения используя \ref <метка>или \eqref <метка>(последняя команда подключается пакетом amsmath и печатает номер уравнения в круглых скобках).
Отметим, что окружение equation, как и все последующие окружения, поддерживают «звездную» версию, отключающую нумерацию текущего математического выражения.
Код | Отображение |
---|---|
Окружение equation печатает математическое выражение в одну строку. Если выражение слишком длинное и выходит за поля, то разбить это выражение можно в окружении multline. Разбиение производится командой новой строки \\ , при этом первая строка выравнивается по левому краю, последняя строка выравнивается по правому краю, а промежуточные строки (если имеются) выравниваются по центру.
Код | Отображение |
---|---|
Отметим, что в англоязычной литературе, обычно математические операторы переносятся на новую строку без дублирования на старой.
Место, где стоит перенос имеет значение с позиции восприятия математического выражения. По возможности стараются в первую очередь перенести знак равенства, затем переносятся знаки плюс и минус, последним переносятся знаки умножения и деления. Переносы в других местах стараются избегать.
Для отображения нескольких математических выражений, например, системы уравнений, существует несколько окружений.
Первое окружение align является стандартным. Для разделения строк используется команда \\ , а выравнивание осуществляется по символу амперсанд & .
Код | Отображение |
---|---|
В многострочных окружениях нумеруется каждая строка. Если вы хотите сослаться на каждое уравнение, то необходимо поставить метку для каждой строки. Если вы хотите запретить нумерацию строки (например, уравнение занимает две строки и пронумерована должна быть только одна строка), то используйте команду запрета нумерации текущей строки \nonumber .
Больше возможностей для выравнивания предоставляет окружение eqnarray , поскольку поддерживает два символа выравнивания в одной строке. Данное окружение делает больший отступ на символах выравнивания, чем предыдущее окружения align.
Код | Отображение |
---|---|
В данном примере первое выравнивание использовано для знака равенства, второе выравнивание для переноса внутри уравнения. Третье уравнение разбито на три строки, поэтому в первых двух строках с переносами нумерация уравнения отключена.
Aligning equations with amsmath
Contents
Introduction
The amsmath package provides a handful of options for displaying equations. You can choose the layout that better suits your document, even if the equations are really long, or if you have to include several equations in the same line.
The standard LaTeX tools for equations may lack some flexibility, causing overlapping or even trimming part of the equation when it’s too long. We can surpass such difficulties by using the amsmath package, which can be added to preamble of your document using \usepackage
Let’s start with a basic example:
The following graphic shows the output produced by the LaTeX code:
You have to wrap your equation in the equation environment if you want it to be numbered, use equation* (with an asterisk) otherwise. Inside the equation environment, use the split environment to split the equations into smaller pieces, these smaller pieces will be aligned accordingly. The double backslash works as a newline character. Use the ampersand character & , to set the points where the equations are vertically aligned.
Writing a single equation
To display a single equation, as mentioned in the introduction, you have to use the equation* or equation environment, depending on whether you want the equation to be numbered or not. Additionally, you might add a label for future reference within the document.
The following graphic shows the output produced by the LaTeX code:
Displaying long equations
For equations longer than a line use the multline environment. Insert a double backslash to set a point for the equation to be broken. The first part will be aligned to the left and the second part will be displayed in the next line and aligned to the right.
Again, the use of an asterisk * in the environment name determines whether the equation is numbered or not.
The following graphic shows the output produced by the LaTeX code:
Splitting and aligning an equation
Split is very similar to multline. Use the split environment to break an equation and to align it in columns, just as if the parts of the equation were in a table. This environment must be used inside an equation environment. For an example check the introduction of this document.
Aligning several equations
If there are several equations that you need to align vertically, the align environment will do it:
The following graphic shows the output produced by the LaTeX code:
Usually the binary operators ( > , and = ) are the ones aligned for a nice-looking document.
As mentioned before, the ampersand character & determines where the equations align. Let’s check a more complex example:
The following graphic shows the output produced by the LaTeX code:
Here we arrange the equations in three columns. LaTeX assumes that each equation consists of two parts separated by an & and that each equation is separated from the one before by an & .
Again, use * to toggle the equation numbering. When numbering is allowed, you can label each row individually.
Grouping and centering equations
If you just need to display a set of consecutive equations, centered and with no alignment whatsoever, use the gather environment. The asterisk trick to set/unset the numbering of equations also works here.
The following graphic shows the output produced by the LaTeX code:
http://fsweb.info/latex/math_environment.html
http://ru.overleaf.com/learn/latex/Aligning_equations_with_amsmath