Научный форум dxdy
Нумерация отдельных уравнений системы (с фигурной скобкой)
Нумерация отдельных уравнений системы (с фигурной скобкой)
19.03.2007, 22:25

Как изобразить средствами систему уравнений, чтобы слева была фигурная скобка, а каждое уравнение имело свой номер? Номер должен выбираться автоматически и ставиться в обычном месте (возле правого или левого края страницы).
Видимо, логичнее использовать один номер для всей системы либо не ставить фигурную скобку. Но всё-таки любопытно, есть ли нормальное решение для исходной задачи.
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.

Это как раз то, что нужно! Только у меня, похоже, какой-то неправильный или устаревший — отказывается исполнять команду «\left\
Цитата:
Итак, как это же саное сделать так, чтобы нумерация формул была отдельной для каждого из уравнений системы (связанной, как и в данном примере фигурной скобкой). Меня интересует регулярный способ. Как извратно выкрутиться, я могу и сам додуматься. С уважением, пользователь LaTeX’а с 13-летним стажем.
Впечатляет последняя фраза (о стаже).
17.03.2008, 14:36
В принципе, для этих целей можно попробовать пакет mathenv. Примерный код будет выглядеть так
\usepackage{amsmath, amssymb, amsthm}
\usepackage{mathtext}
\usepackage{mathenv}
Система уравнений имеет вид
\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}
Спасибо за решение проблемы!
17.03.2008, 19:00
AKalinin , спасибо за решение проблемы! Пакет mathenv умеет делать как раз то, чего хотелось.
18.03.2008, 01:58
проблема была в расположении меток (номеров)
18.03.2008, 02:58
maxal писал(а):
Кстати, уравнения с фигурной скобкой проще изображать с помощью окружения cases
Да, если не нужна нумерация отдельных уравнений системы, то годятся и cases , и array . Проблема была в том, как в нужное место ставить номера.
29.11.2008, 11:38
Как ни странно у меня возникла такая же потребность как и у автора темы — нумеровать каждое уравнение системы и лепить к системе фигурную скобочку.
Пакет mathenv даёт решение, НО.
Во-первых, он переопределяет ограничители для выключенных уравнений, которыми я пользуюсь \[ и \], но это полбеды, достаточно во всём тексте заменить их на \begin и \end
Во-вторых, я выравниваю уравнения влево с помощью опции 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}
без & т.к. они используются для подписей к уравнениям.
В итоге вопрос: как выровнять полученную систему влево? Или может кто-то знает способ без этого пакета?
latex Cистема уравнений. Фигурная скобка — пример команд

Поэксперементируйте, редактируя данный пример и вы быстро разберётесь что к чему.
Или вот проще (три строки):
\begin \begin 2 |x|(2 — x) = a, \\ x < 2, \\ x \ne 0. \end\end
Также читайте про «нормализацию» размера дробей в системе уравнений и совокупностях систем уравнений.
Key Words for FKN + antitotal forum (CS VSU):
- сайт о программировании
- примеры программного кода
- сообщество программистов
- Latex система уравнений
- Latex система
- латех система
- латех система уравнений
- фигурная скобка латех
- как сделать фигурную скобку в системе уравнений латех
- система уравнений
- фигурная скобка
- фигураная скобка латех
- латех система уравнений пример
- cases latex
- Log in to post comments
- 267623 reads

Mon, 01/05/2015 — 09:20
Как в Latex пишутся квадратные скобки в системе уравнений?
Здравствуйте!
Подскажите пожалуйста, как в Latex пишутся квадратные скобки?

P.S. Забыл уточнить: в системе уравнений! По типу таких:
- Вопрос задан более трёх лет назад
- 15244 просмотра
2 комментария
Оценить 2 комментария
Latex и одна фигурная скобка справа
Глядя на старые записи (ручкой по бумаге) я заметил, что регулярно требуется следующая конструкция: несколько строк текста или формул, справа одна > (aka brace) и за ней пояснение.
Какой самый правильный способ сделать такую конструкцию? Нужно чтобы это работало с формулами и текстом (включая кириллицу) и скобка автоматически меняла размер в зависимости от количества строк.

Gregon ★
21.07.14 18:21:44 MSK
anonymous
( 21.07.14 18:27:34 MSK )

\left. сложное выражение \right\>
Evgueni ★★★★★
( 21.07.14 18:29:46 MSK )
Ответ на: комментарий от Evgueni 21.07.14 18:29:46 MSK

Спасибо за быстрый ответ, но можно подробнее? Как именно вставлять эти две команды для формул и текста? Пока что мне компилятор ругается на не хватающие ему $.
Gregon ★
( 21.07.14 18:34:22 MSK ) автор топика
Ответ на: комментарий от Gregon 21.07.14 18:34:22 MSK

Как ни кручу-верчу, ругается на отсутствие то правой, то левой скобки.
Gregon ★
( 21.07.14 18:42:18 MSK ) автор топика
Ответ на: комментарий от Evgueni 21.07.14 18:29:46 MSK

Хм. в таком виде:
\left. сложное выражение \right\>
Оно жалуется что нужны $. В таком виде:
$\left. сложное выражение \right\>$
Оно не жрет кирилицу. А вот так:
$\left.$ сложное выражение $\right\>$
Оно не ловит скобки и пишет что не хватает правой-левой.
Gregon ★
( 21.07.14 18:51:50 MSK ) автор топика
Ответ на: комментарий от Gregon 21.07.14 18:51:50 MSK

thunar ★★★★★
( 21.07.14 19:01:30 MSK )
Ответ на: комментарий от thunar 21.07.14 19:01:30 MSK

Спасибо. Но что с переносами? \\ игнорируется.
Gregon ★
( 21.07.14 19:05:08 MSK ) автор топика
Ответ на: комментарий от Gregon 21.07.14 19:05:08 MSK

beastie ★★★★★
( 21.07.14 19:07:22 MSK )
Ответ на: комментарий от Gregon 21.07.14 19:05:08 MSK

Математическая мода отличается от текстовой. Для набора математики для начала изучи любой букварь по этой теме — это не долго, например мой: http://www.inp.nsk.su/~baldin/LaTeX/index.html
Кириллица в формулах без хаков доступна только внутри команды \text<> из пакета amsmath
Evgueni ★★★★★
( 21.07.14 19:08:23 MSK )
Ответ на: комментарий от Evgueni 21.07.14 19:08:23 MSK

За пределами матмоды фигурные скобки с автоподстройкой по высоте получается вообще не существуют?
Gregon ★
( 21.07.14 19:13:30 MSK ) автор топика
Ответ на: комментарий от Gregon 21.07.14 19:13:30 MSK

Вам нужно какие-то логические доказательства оформить? Для чего вам скобки?
Evgueni ★★★★★
( 21.07.14 21:28:35 MSK )
Ответ на: комментарий от Gregon 21.07.14 19:13:30 MSK
Да, но при желании можно сделать свою собственную растягиваемую скобку. Как минимум, как-то так:
$\left\<\text<\parbox<ширина>>\right.$
(оформить это в команду — и ОК)
Eddy_Em ☆☆☆☆☆
( 21.07.14 21:36:25 MSK )
несколько строк текста или формул, справа одна > (aka brace) и за ней пояснение.
Вона как! Тут уже непросто! Придется балансировку делать по высоте. Если же пояснение всегда короткое, то можно попробовать и упростить:
\usepackage \begin \newdimen\ww \def\abox<$\left.\parbox<\ww><\lipsum[1]>\right\>$текст пояснения> \ww=0.5\textwidth \setbox0=\hbox \advance\ww by\textwidth \advance\ww by-\wd0 \noindent\abox \end
Eddy_Em ☆☆☆☆☆
( 21.07.14 21:49:30 MSK )
Ответ на: комментарий от Eddy_Em 21.07.14 21:49:30 MSK

Эх, оформить бы такое в готовый пакет. Собственно мне примерно вот так нужно:
- Первое правило > - Второе правило > - 2 + 3 = 4 и никак иначе > Правила сложения - . шестое правило > - не правило >
То есть запись идет в текстовой моде, item list, внутри иногда $формулы$. На лекциях так удобно писать, записываешь пункты по очереди, потом — фигурную скобку и пишешь о чем это. Хз как в России, но в Германии так любят писать.
Gregon ★
( 22.07.14 15:29:36 MSK ) автор топика
Ответ на: комментарий от Evgueni 21.07.14 21:28:35 MSK

Ниже точнее объяснил, чего мне надобно. Не доказательства)
Gregon ★
( 22.07.14 15:30:30 MSK ) автор топика
Ответ на: комментарий от Gregon 22.07.14 15:29:36 MSK
Эх, оформить бы такое в готовый пакет.
anonymous
( 22.07.14 15:33:54 MSK )
Ответ на: комментарий от Gregon 22.07.14 15:29:36 MSK
Ты можешь вместо \parbox в моем примере запихать все в \minipage и засунуть в макрос.
Получишь просто и элегантно. На всякий случай можно еще добавить проверку ширины текста справа — если шире, скажем, чем 0.25\textwidth , то запихать его тоже в \parbox .
Только с такими блочищами будет другая проблема: огромные штрафы, если блок будет внизу страницы и не влезет. В общем, добавить еще отрицательный penalty в начале макроса и/или бесконечно растяжимый клей (ну или \raggedbottom сказать, что то же самое).
Или есть альтернативное оформление такой конструкции?
Я в методичках такое делал: блоки текста с отступами. Но вот так — большими кусками — не стоит все-таки делать. Криво в итоге получится. Разве что оформлять это дело как плавающую вставку.
Eddy_Em ☆☆☆☆☆
( 22.07.14 15:36:34 MSK )
Ответ на: комментарий от anonymous 22.07.14 15:33:54 MSK

О. Примеры выглядят несколько запутанно (видимо из-за универсальности пакета), но это кажется почти то что надо. Спасибо, аноним, возьму на заметку)
Gregon ★
( 22.07.14 15:41:32 MSK ) автор топика
Ответ на: комментарий от Eddy_Em 22.07.14 15:36:34 MSK

Ага, выше кто-то упоминал minipage.
На всякий случай можно еще добавить проверку ширины текста справа
Я понимать понимаю, о чем речь, но как это делается без понятия. Потому что нуб в техе.
Gregon ★
( 22.07.14 15:46:02 MSK ) автор топика
Ответ на: комментарий от Gregon 22.07.14 15:46:02 MSK
Точно так же: запихать в бокс и измерить его ширину. Если она больше, чем надо, то вместо обычного бокса использовать \parbox .