2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Нумерация отдельных уравнений системы (с фигурной скобкой)
Сообщение19.03.2007, 22:25 
Как изобразить средствами \LaTeX систему уравнений, чтобы слева была фигурная скобка, а каждое уравнение имело свой номер? Номер должен выбираться автоматически и ставиться в обычном месте (возле правого или левого края страницы).

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

 
 
 
 
Сообщение20.03.2007, 11:38 
Аватара пользователя
Я бы залудил собственный счётчик и \refstepcounter'ов везде понатыкал.
(Это не отменяет того, что у проблемы может существовать уже готовое штатное решение.)

 
 
 
 
Сообщение20.03.2007, 17:24 
Аватара пользователя
Можно сделать так:
Код:
$$\left\{\begin{align*}... \eqno (1)\\ ...\eqno (2)\end{align*}$$


Еще можно переопределить окружнение \align*, чтобы оно само нумеровало формулы. Для этого достаточно сделать то, о чем писал ИСН.

 
 
 
 Проблема с размещением номеров
Сообщение20.03.2007, 19:08 
Насчёт автоматической нумерации понятно, спасибо ИСН. Осталась проблема, как нарисовать номера уравнений возле правого края страницы и фигурную скобку слева от системы. Для рисования левой фигурной скобки пытаюсь группировать уравнения в array или aligned, а команда eqno оттуда не работает.
Lion писал(а):
Можно сделать так:
Код:
$$\left\{\begin{align*}... \eqno (1)\\ ...\eqno (2)\end{align*}$$


А разве можно помещать align* внутрь двойных долларов? У меня ругается:
Код:
Package amsmath Error: Erroneous nesting of equation structures;

Если заменить align* на aligned, то пишет, что eqno в неподходящем месте.

 
 
 
 
Сообщение20.03.2007, 20:29 
Аватара пользователя
Да, я поспешил, разумеется, окружение \align* оформляется без долларов, а с помощью команды \eqno можно нумеровать только формулы, ограниченые долларами.

Еще вариант --- окружение \gather:
Код:
\left\{\begin{gather}..\\ .. \end{gather}\right.


Если и это не будет работать, воспользуйтесь окружением \eqnarray:
Код:
\left\{\begin{eqnarray}..\\ ..\end{eqnarray}\right.

 
 
 
 почти получилось
Сообщение20.03.2007, 21:34 
Lion писал(а):
Еще вариант --- окружение \gather:
Код:
\left\{\begin{gather}..\\ .. \end{gather}\right.


Это как раз то, что нужно! Только у меня, похоже, \LaTeX какой-то неправильный или устаревший - отказывается исполнять команду "\left\{" вне формулы. :cry:

Наткнулся на описание этой же задачки в другом форуме (решения там нет):
Цитата:
Итак, как это же саное сделать так, чтобы нумерация формул была отдельной для каждого из уравнений системы (связанной, как и в данном примере фигурной скобкой). Меня интересует регулярный способ. Как извратно выкрутиться, я могу и сам додуматься. С уважением, пользователь LaTeX'а с 13-летним стажем.

Впечатляет последняя фраза (о стаже).

 
 
 
 
Сообщение17.03.2008, 14:36 
В принципе, для этих целей можно попробовать пакет mathenv. Примерный код будет выглядеть так
Код:
\documentclass[12pt]{article}

\usepackage[russian]{babel}
\usepackage[cp1251]{inputenc}
\usepackage[T2A]{fontenc}

\usepackage{amsmath, amssymb, amsthm}
\usepackage{mathtext}
\usepackage{mathenv}

\begin{document}

Система уравнений имеет вид
\begin{EqSystem}
    a_1 x_1 & = b_1 \\
    a_2 x_2 & = b_2 \\
    a_3 x_3 & = b_3 \\
    a_4 x_4 & = b_4
\end{EqSystem}

\end{document}

 
 
 
 Спасибо за решение проблемы!
Сообщение17.03.2008, 19:00 
AKalinin, спасибо за решение проблемы! Пакет mathenv умеет делать как раз то, чего хотелось.

 
 
 
 
Сообщение18.03.2008, 01:58 
Аватара пользователя
Кстати, уравнения с фигурной скобкой проще изображать с помощью окружения cases:
$$\begin{cases} x=y-1;\\ y=z-1;\\ z=x+y.\end{cases}$$

 
 
 
 проблема была в расположении меток (номеров)
Сообщение18.03.2008, 02:58 
maxal писал(а):
Кстати, уравнения с фигурной скобкой проще изображать с помощью окружения cases

Да, если не нужна нумерация отдельных уравнений системы, то годятся и cases, и array. Проблема была в том, как в нужное место ставить номера.

 
 
 
 
Сообщение29.11.2008, 11:38 
Как ни странно у меня возникла такая же потребность как и у автора темы - нумеровать каждое уравнение системы и лепить к системе фигурную скобочку.
Пакет mathenv даёт решение, НО...
Во-первых, он переопределяет ограничители для выключенных уравнений, которыми я пользуюсь \[ и \], но это полбеды, достаточно во всём тексте заменить их на \begin{displaymath} и \end{displaymath} :)
Во-вторых, я выравниваю уравнения влево с помощью опции fleqn, а система которая получается с помощью окружения EqSystem, не хочет выравниваться! С моим средненьким знанием инглиша в документации к пакету ничего на эту тему не нашёл :(
Кстати, код который был выше, лучше поправить
Код:
\begin{EqSystem}
    a_1 x_1 = b_1 \\
    a_2 x_2 = b_2 \\
    a_3 x_3 = b_3 \\
    a_4 x_4 = b_4
\end{EqSystem}

без & т.к. они используются для подписей к уравнениям.
В итоге вопрос: как выровнять полученную систему влево? Или может кто-то знает способ без этого пакета?

 
 
 
 
Сообщение29.11.2008, 15:36 
Аватара пользователя
Можно попробовать так:
в преамбуле:
Код:
\usepackage{numcases}

потом в тексте:
Код:
\begin{numcases}{}
Lpart1 = Rpart1;\\
Lp2 = Rp2;\\
Lprt3 = Rprt3.
\end{numcases}

 
 
 
 
Сообщение29.11.2008, 18:12 
К сожалению у меня пакета numcases не оказалось :( Поставлю, посмотрю как получится. В любом случае, спасибо ;)

 
 
 
 
Сообщение21.01.2009, 16:25 
Да, сутя по всему numcases самое правильное решение. FAQ на www.ams.org говорит:
    How can I get something like the "cases" environment that permits a separate equation number for each line?
    Try the "cases" package of Donald Arseneau. It is available from CTAN if it isn't already on your system.
Этот пакет, например, можно взять вот тут CTAN на chg.ru.

 
 
 [ Сообщений: 14 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group