Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 4036 / 1360 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 2:

Как набирать формулы

Важные мелочи

Нумерация формул

В математических текстах обычно приходится для удобства ссылок нумеровать формулы; LaTeX позволяет организовать эту нумерацию таким образом, чтобы номера формул и ссылки на них генерировались автоматически . Нумеровать таким образом можно только выключные формулы. Делается это так.

Выключная формула, которую вы нумеруете, должна быть оформлена как окружение equation (знаков "$$" быть не должно!). Каждая такая формула на печати автоматически получит номер. Чтобы на него можно было ссылаться, надо формулу пометить: в любом месте между \begin{equation} и \end{equation} поставить команду \label, и после этого команда \ref будет генерировать номер формулы ; напомним, что может понадобиться повторный запуск LaTeX'a). Поясним сказанное примером:

Как известно,
\begin{equation}
\label{trivial}
7\times9=63.
\end{equation}
.............................................................


Из формулы~(1)
следует, что \hfill\\
$63/9=7$
.
Как известно,
\begin{equation}
\label{trivial}
7\times9=63.
\end{equation}
.........................
Из формулы~(\ref {trivial})
следует, что $63/9=7$.

Знак "~" мы поставили, чтобы номер формулы и слово " формулы" не попали на разные строки . Обратите внимание, что скобки вокруг номера формулы, сгенерированного командой \ref, автоматически не ставятся. Если вы подключили пакет \amsmath, то можете воспользоваться командой \eqref, единственным отличием которой от \ref является то, что она автоматически ставит скобки вокруг номера формулы.

Можно также использовать команду \pageref вместо \ref — тогда на печати получится не номер формулы, а номер страницы, на которую попала эта формула.

То, как именно выглядит на печати номер формулы, зависит от класса документа : например, в классе Tarticle (статья) формулы имеют сплошную нумерацию, а в классе book (книга) нумерация формул начинается заново в каждой лекции, и номер, скажем, формулы 5 из главы 3, генерируемый окружением equation, имеет вид (3.5). В лекции, посвященной модификации стандартных классов, мы расскажем, как можно самостоятельно менять вид номеров формул.

Кроме того, вы можете вообще не пользоваться автоматической генерацией номеров формул, а ставить их вручную. Чтобы номер выглядел при этом красиво, удобно воспользоваться TeX'овской командой \eqno. Следующий пример показывает, как это делать:

Простое тождество
$$
7\times9=63\eqno (3.2)
$$
известно каждому школьнику
.
Простое тождество
$$
  7\times9=63\eqno (3.2)
$$
известно каждому школьнику.

Выключная формула, нумеруемая с помощью команды \eqno, должна быть оформлена с помощью знаков $$; номером формулы будет служить весь текст, заключенный между \eqno и закрывающими формулу $$; этот текст обрабатывается TeX'ом так же, как математические формулы (стало быть, пробелы игнорируются, буквы печатаются "математическим курсивом", и т.п.). Можно также вместо \eqno сказать \leqno, тогда ваш номер формулы будет не справа, а слева.

Никаких автоматических ссылок на формулу, генерируемую командой \eqno или \leqno, TeX не создает, и в этом случае за корректность ссылок отвечаете только вы.

Переносы в формулах

При необходимости TeX может перенести часть внутритекстовой формулы на другую строчку. Такие переносы возможны после знаков "бинарных отношений", наподобие знака равенства1Стрелки также рассматриваются TeX'ом как бинарные отношения. или "бинарных операций", наподобие знаков сложения или умножения , причем последний знак в строке, вопреки российской традиции, не дублируется в начале следующей. Чтобы избежать этих переносов, можно воспользоваться тем обстоятельством, что TeX не разрывает при переносе часть формулы, заключенную в фигурные скобки. В частности, можно заключить в фигурные скобки всю формулу, в которой произошел нежелательный перенос, от открывающего ее знака доллара до закрывающего: после этого можно быть уверенным, что переноса этой формулы ни при каких обстоятельствах не произойдет.

Вышеописанный способ борьбы с неудачными переносами в формулах имеет один недостаток: при этом затрудняется верстка абзацев и возрастает вероятность появления неприятных сообщений "Overfull \hbox"(см. разд."Абзацы" "Набор текста" ).

Более гибкий способ борьбы с переносами в формулах — записать в преамбуле файла строку

\binoppenalty=10000"

и/или строку

relpenalty=10000

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

Для любознательных поясним, что \binoppenalty и \relpenalty — параметры (TeX'овские), значением которых может быть целое число . Эти параметры определяют степень нежелательности разрыва строки после символов бинарной операции и бинарного отношения соответственно (чем больше значение соответствующего параметра, тем менее желателен разрыв строки). По умолчанию значение \binoppenalty равно 700, а значение \relpenalty равно 500. Можно присвоить им в преамбуле большие значения, тогда вероятность разрывов уменьшится. Значение 10000 означает абсолютный запрет.

При заключении всей формулы в фигурные скобки верстка абзацев затрудняется, поскольку TeX лишается возможности варьировать в ней интервалы между символами для выравнивания строк (см. разд."Абзацы" "Набор текста" ).

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

\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%
            {\hbox{\mathsurround=0pt #1}}{}}

в преамбулу, можно написать $a\hm+b\hm+c\hm+d$, при этом в формуле a\hm+b\hm+c\hm+d при переносе знак + будет продублирован.

Выключные формулы, в отличие от внутритекстовых, TeX никогда не переносит. Если выключная формула не помещается в строку, то при трансляции вы получите сообщение "Overfull \hbox " (в разд. "Абзацы" "Набор текста" подробно рассказано, в каких еще ситуациях выдается такое сообщение), и вам придется разбить формулу на строки вручную. Как это делать, мы объясним в разд. "Многострочные и выключные формулы".

Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров