Как написать систему уравнений в latex
Перейти к содержимому

Как написать систему уравнений в latex

  • автор:

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

Нумерация отдельных уравнений системы (с фигурной скобкой)

Нумерация отдельных уравнений системы (с фигурной скобкой)
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\
Цитата:

Итак, как это же саное сделать так, чтобы нумерация формул была отдельной для каждого из уравнений системы (связанной, как и в данном примере фигурной скобкой). Меня интересует регулярный способ. Как извратно выкрутиться, я могу и сам додуматься. С уважением, пользователь 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

$\begin</p>
<p>Кстати, уравнения с фигурной скобкой проще изображать с помощью окружения cases : <br /> x=y-1;\\ y=z-1;\\ z=x+y.\end$» /></p><div class='code-block code-block-5' style='margin: 8px 0; clear: both;'>
<!-- 5agladky -->
<script src=

проблема была в расположении меток (номеров)
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истема уравнений. Фигурная скобка — пример команд

vedro-compota's picture

Поэксперементируйте, редактируя данный пример и вы быстро разберётесь что к чему.
Или вот проще (три строки):

\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

vedro-compota's picture

Mon, 01/05/2015 — 09:20

Как в Latex пишутся квадратные скобки в системе уравнений?

Здравствуйте!
Подскажите пожалуйста, как в Latex пишутся квадратные скобки?

83759fb76e61480f8519605df297956c.png

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 .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *