Отображаемые уравнения | Руководство по LaTeX

К этому моменту мы обсудили, как обращаться с отдельными формулами; но дисплеи часто включают в себя целую кучу разных формул или разные части огромной формулы, и может быть непросто расположить их так, чтобы они правильно совпадали друг с другом. К счастью, большие дисплеи обычно подчиняются нескольким простым шаблонам.

9.1. Однострочные дисплеи

Отображаемые уравнения часто содержат обычный текст. Мы уже обсудили, как использовать латинский шрифт в формулах, не выходя из математического режима, но лучший способ вывести текст на экран — поместить его в \hbox. На самом деле вообще никакой математики быть не должно. Чтобы ввести набор

Отображаемый текст без каких-либо математических вычислений

вы можете сказать $$\hbox{Отображаемый текст}$$. Но вот более интересный пример:

Текст на математическом дисплее

В данном случае формулы и текст были объединены следующим образом:

1$$\X_n=X_k \qquad\hbox{if and only if}\qquad
2     Y_n=Y_k \quad\hbox{and}\quad Z_n=Z_k.$$

Как вы можете видеть, \qquad появляется вокруг “тогда и только если”, но одиночный \quad окружает “и”; это подчеркивает тот факт, что части дисплея Y и Z более тесно связаны друг с другом, чем с частью X.

Давайте посмотрим на следующий дисплей:

Текст на математическом дисплее

Один из способов указать это:

1$$Y_n=X_n\bmod p \quad\hbox{and}\quad z_n=X_n\bmod q
2    \qquad\hbox{for all }n\ge0.$$

Но лучше было бы (см. вторую строку)

1$$Y_n=X_n\bmod p \quad\hbox{and}\quad z_n=X_n\bmod q
2    \qquad\hbox{for all $n\ge0$.}$$

Да, это математический режим внутри горизонтального режима внутри математического режима отображения, но это решение выглядит более естественным, чем первое.

Теперь давайте обратимся к номерам уравнений, к тем маленьким меткам, которые появляются сбоку от дисплеев. Если вы наберете

1$$<formula>\eqno<formula>$$

TeX отобразит первую формулу, а также поместит номер уравнения (вторая формула) в правом поле. Например,

1$$x^2-y^2 = (x+y)(x-y).\eqno(15)$$

будет производить

Номера уравнений справа

Вы также можете получить номера уравнений в левом поле, используя \leqno. Например,

1$$x^2-y^2 = (x+y)(x-y).\leqno(15)$$

будет производить

Номера уравнений слева

Обратите внимание, что вы всегда указываете номер уравнения на втором месте, даже если он появится слева.

Отображаемые уравнения центрируются независимо от наличия номеров уравнений. Но когда формула большая, TeX следит за тем, чтобы она не мешала ее номеру; номер уравнения можно даже разместить на отдельной строке.

LaTeX также предоставляет среду уравнений для автоматической нумерации ваших уравнений. Например, набрав

1\begin{equation}
2  f(x)=(x+a)(x+b)
3\end{equation}

приводит к

Использование уравнения среды

Также возможно маркировать уравнения и ссылаться на них, используя \label и \ref. Например,

1\begin{equation} \label{eq:someequation}
2  f(x)=(x+a)(x+b)
3\end{equation}
4this references equation \ref{eq:someequation}.

приводит к

Использование среды уравнений с меткой и ссылкой

9.2. Многострочные дисплеи

Иногда изображение может не соответствовать простому шаблону однострочной формулы с номером уравнения или без него. LaTeX предоставляет специальные команды для большинства остальных случаев.

Многострочные дисплеи обычно включают в себя несколько уравнений, которые должны быть выстроены в ряд знаками «=", как в

Многострочное уравнение, набранное в среде массива

Рекомендуемый метод такого отображения — использовать среду массива, предоставляемую LaTeX:

1$$\begin{array}{rl}
2  X_1+\cdots+\X_p&=m,\\
3  Y_1+\cdots+\Y_q&=n.}
4\end{array}$$

Эта среда помогает вам представлять ваши уравнения в виде прямоугольного массива с несколькими столбцами (в данном случае — с двумя столбцами). Строки содержат отдельные уравнения, разделенные командой \\ (которая является новой строкой). Левая и правая части каждого уравнения разделяются символом &. Не обязательно, чтобы последняя строка заканчивалась \\. У среды также есть аргумент, задающий выравнивание в каждом столбце. В примере подходящее значение — «rl», что означает, что левые части уравнений будут располагаться заподлицо вправо, а правые части — заподлицо влево.

LaTeX также предоставляет среду eqnarray*, которая работает аналогичным образом, но для правильного выравнивания обеих сторон уравнений необходимы две точки выравнивания, и, к сожалению, интервалы несколько выходят за рамки соглашений о математической типизации. Следующий код

1\begin{eqnarray*}
2  X_1+\cdots+X_p&=&m,\\
3  Y_1+\cdots+Y_q&=&n.
4\end{eqnarray*}

производит следующий вывод:

Многострочное уравнение, набранное в среде eqnarray*

Среда LaTeX eqnarray дает тот же результат, за исключением того, что уравнения автоматически нумеруются.

В среде «массива» может быть любое количество уравнений; общая картина такова

1\begin{array}{rl}
2  <left-hand side_1>&<right-hand side_1>\\
3  <left-hand side_2>&<right-hand side_2>\\
4  ...
5  <left-hand side_n>&<right-hand side_n>
6\end{array}

где каждый <правая сторона> начинается с символа, по которому вы хотите выполнить выравнивание.

Результатом среды array является вертикально центрированный прямоугольник. Это позволяет легко получить формулу вида

Две группы уравнений на одном дисплее

Вы просто дважды используете среду array в строке:

1$$\left\{
2  \begin{array}{rl}
3    \alpha&=f(z)\\ \beta&=f(z^2)\\ \gamma&=f(z^3)
4  \end{array}
5\right\}\qquad\left\{
6  \begin{array}{rl}
7    x&=\alpha^2-\beta\\ y&=2\gamma
8  \end{array}
9\right\}.$$

Следующий уровень сложности возникает, когда у вас есть несколько выровненных уравнений с несколькими номерами уравнений. Или некоторые строки могут быть пронумерованы, а другие нет:

Пронумерованный массив уравнений с тегами справа

К сожалению, даже в среде eqnarray* (с неправильным интервалом) нет возможности вручную указать номера уравнений в многострочном отображении. Только пакет amsmath может помощь. Итак, рекомендуемый способ получить вышеуказанный результат — ввести:

1%% Preamble
2\usepackage{amsmath}
3%% Body
4\begin{align}
5  (x+y)(x-y)&=x^2-xy+xy-y^2 \notag \\
6            &=x^2-y^2; \tag4\\
7  (x+y)^2   &=x^2+2xy+y^2. \tag5
8\end{align}

Если вы опустите \tag и \notag в строке среды align, номер уравнения будет сгенерирован автоматически с использованием текущего значения, хранящегося в соответствующем внутреннем счетчике.

Если вы загрузите пакет amsmath с опцией leqno, номера уравнений появятся слева. Таким образом

1%% Preamble
2\usepackage[leqno]{amsmath}
3%% Body
4\begin{align}
5  (x+y)(x-y)&=x^2-xy+xy-y^2 \notag \\
6            &=x^2-y^2; \tag4\\
7  (x+y)^2   &=x^2+2xy+y^2. \tag5
8\end{align}

производит

Пронумерованный массив уравнений с тегами слева

Чтобы узнать больше о наборе математических формул с использованием функций пакета amsmath, прочтите эти статьи.

9.3. Длинные формулы

Теперь давайте обсудим, что делать, если формула настолько длинная, что не умещается в одной строке. Например, предположим, что вы столкнулись с уравнением

Сжатая длинная формула, приводящая к переполнению строки

Вам придется как-то это разбить; TeX приложил все усилия, чтобы сжать все воедино, сократив пробелы рядом со знаками «+» и «-» до нуля, но строка все равно оказалась переполненной.

Давайте попробуем разрушить это уравнение непосредственно перед цифрой «+7». Среда array оставляет слишком много места справа от знака “=”, если вы используете его так же, как и для многострочных уравнений:

1$$\begin{array}{rl}
2  \sigma(2^{34}-1,2^{35},1)&=-3+(2^{34}-1)/2^{35}+2^{35}\!/(2^{34}-1) \\
3                   &\qquad{}+7/2^{35}(2^{34}-1)-\sigma(2^{35},2^{34}-1,1)
4\end{array}$$

Поэтому лучше снова прибегнуть к пакету amsmath. Но на этот раз вам следует использовать массив align*, поскольку номера уравнений не нужны:

1%% Preamble
2\usepackage{amsmath}
3%% Body
4\begin{align*}
5  \sigma(2^{34}-1,2^{35},1)&=-3+(2^{34}-1)/2^{35}+2^{35}\!/(2^{34}-1) \\
6                   &\qquad+7/2^{35}(2^{34}-1)-\sigma(2^{35},2^{34}-1,1).
7\end{align*}$$

Это дает

Длинная формула разбита с помощью среды align*

Идея состоит в том, чтобы рассматривать длинную однострочную формулу как двухстрочную формулу, используя \qquad во второй строке, чтобы вторая часть формулы отображалась справа от знака ‘=’ в первой строке. . На самом деле это непростая задача — решить, как разбить длинные отображаемые формулы на строки; TeX никогда не пытается сделать это, потому что ни один набор правил не является действительно адекватным. Автор математической рукописи, как правило, лучше всех знает, что делать, поскольку позиции прорыва зависят от тонких факторов математического изложения. Например, часто желательно подчеркнуть некоторую симметрию или другую структуру, лежащую в основе формулы, а такие вещи требуют четкого понимания того, что именно происходит в этой формуле.

Тем не менее, можно сформулировать несколько практических правил о том, как обращаться с длинными формулами на дисплеях, поскольку существуют некоторые принципы, которым склонен следовать лучший математический наборщик:

  1. Хотя формулы внутри абзаца всегда разрываются после бинарных операций и отношений, отображаемые формулы всегда разрываются до бинарных операций и отношений. Вот почему мы не закончили первую строку нашего предыдущего примера (2^{34}-1)+; мы закончили ее с помощью (2^{34}-1 и начали вторую строку с +.

  2. Если уравнение разрывается перед бинарной операцией, вторая строка должна начинаться как минимум на два квадрата справа от того места, где в первой строке начинается самая внутренняя подформула, содержащая эту бинарную операцию. Например, если вы хотите сломать

1$$\sum_{0<k<n}\left(<formula_1>+<formula_2>\right)$$

при знаке плюс между <formula_1> и <formula_2> почти обязательно, чтобы знак плюса во второй строке располагался несколько правее большой левой круглой скобки, соответствующей \left(.

В только что рассмотренном примере требуется особая осторожность при разбиении формулы на две строки, поскольку разделители \left и \right не могут использоваться изолированно: вы не можете использовать только \left в одной строке формула и только \right во второй. Более того, вам нужно, чтобы два разделителя были одинакового размера, даже если они встречаются в разных строках. Лучшим решением обычно является выбор размера разделителя самостоятельно; например, вы можете ввести

1%% Preamble
2\usepackage{amsmath}
3%% Body
4\begin{align*}
5  \sum_{0<k<n}\biggl(&<formula_1>\\
6    &\qquad+<formula_2>\biggr)
7\end{align*}

если разделители \bigg лучше всего. Обратите внимание, что в этом примере маркеры & не встречаются рядом со знаками =, они просто отмечают точку выравнивания.

Есть еще один способ разбить длинные формулы, иногда называемый двухстрочной формой. Идея состоит в том, чтобы поместить первую часть формулы почти на одном уровне слева, а вторую часть — почти на одном уровне с правым углом, где «почти на одном уровне» означает «на расстоянии одного квадрата». Таким образом, рассмотренная ранее двухлинейная форма длинного сигма-уравнения имеет вид

Двухстрочная форма уравнения

Чтобы получить этот двухстрочный эффект, просто введите:

1$$\displaylines{\quad\sigma(2^{34}-1,2^{35},1)
2  =-3+(2^{34}-1)/2^{35}+2^{35}\!/(2^{34}-1)\hfill{}\cr
3\hfill{}+7/2^{35}(2^{34}-1)-\sigma(2^{35},2^{34}-1,1).\quad\cr}$$

Во второй строке здесь было введено дополнительное {}, чтобы TeX знал, что + — это бинарная операция. Двухстрочная форма особенно рекомендуется для уравнений с длинной левой частью; в этом случае разрыв обычно происходит непосредственно перед знаком =.

Have any questions about Aspose.TeX?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.