Date Редакция Категория Comp Теги LaTeX / формулы

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

Вот формула:

\begin{equation}
 i^2 = -1.
 \label{eq:ref}
\end{equation}

А вот на нее ссылка --- (\ref{eq:ref}).

refeq0.png

И все!

Нет, не все — есть способ и получше. Но, начнем с самого начала.

Выключные (или выносные, короче, те что не находятся внутри абзаца) формулы в LaTeX помещаются в окружения equation и displamath. Первые автоматически нумеруются и на них можно ссылаться в тексте, вторые не нумеруются и ссылаться на них нельзя.

Но: на формулы, стоящие в equation, может и не быть ссылок. Это не слишком хорошо — зачем тогда нужно было эту формулу нумеровать?

Кроме того, для окружения displamath есть удобное сокращение \[...\], а у equation такого сокращения нет. Можно применить для этого собственные макросы, например,

\newcommand{\eq}{\begin{equation}}
\newcommand{\qe}{\end{equation}}

или настроить автодополнение в редакторе...

Обе проблемы решает пакет autonum — он заставляет нумеровать только те формулы, на которые ссылаются в тексте независимо от того, в каком окружении они стоят.

Проверим это

\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}

\usepackage{autonum}

\begin{document}

Вот формула без ссылки:

\begin{equation}
 i^2 = -1.
\end{equation}

Вот формула со ссылкой:

\[
 i^2 = -1.
 \label{eq:ref}
\]

А вот на нее ссылка --- (\ref{eq:ref}).
\end{document}

refeq1.png

Формула, стоящая в equation, не нумеруется, потому что на нее не ссылаются. Напротив, нумеруется формула из окружения displaymath.

Таким образом, чтобы нумеровались только те формулы, на которые стоят ссылки в тексте, нужно использовать пакет autonum и единственное окружение — \[..\].

А что если теперь нужно сделать так, чтобы каждая формула имела номер? И сделать быстро, не меняя команд форматирования документа? Такая необходимость возникает при вставке материала в отчет о НИР, в котором по требованиям ГОСТа нужно нумеровать все формулы.

Чтобы все выключные формулы приобрели номера, закомментируем autonum и введем новые обозначения для начала и конца окружения equation:

%\usepackage{autonum}

\renewcommand\[{\begin{equation}}
\renewcommand\]{\end{equation}}

refeq2.png



Комментарии

comments powered by Disqus