Math alignment problem
Hi all, I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align. How to do this? -- Marcin Borkowski (http://mbork.pl)
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Hi all,
I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align.
How to do this?
I do not completely understand what you want. Do the following give the desired output. \starttext \startformula \startcases[align={right,left},distance=3pt] \NC 2x + 3y \MC{} = 10 \NR \NC 3x + 2y \MC{} = 5 \NR \stopcases \stopformula \startformula \startmatrix[align={right,left},distance=3pt,left={\left\{}, right={\right.}] \NC 2x + 3y \NC{} = 10 \NR \NC 3x + 2y \NC{} = 5 \NR \stopmatrix \stopformula \stoptext The {} after the alignment \NC is useful if the next symbol is something that can be a uniary or binary symbol (eg, + or -). The {} tells tex to treat is as a binary symbol. If you frequently need something like this, you can use definemathcases/definemathmatrix to define a new environment with appropriate parameters. Aditya
Dnia Sat, Jan 10, 2009 at 01:15:28PM -0500, Aditya Mahajan napisał(a):
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Hi all,
I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align.
How to do this?
I do not completely understand what you want. Do the following give the desired output.
Sorry;).
\starttext
\startformula \startcases[align={right,left},distance=3pt] \NC 2x + 3y \MC{} = 10 \NR \NC 3x + 2y \MC{} = 5 \NR \stopcases \stopformula
\startformula \startmatrix[align={right,left},distance=3pt,left={\left\{}, right={\right.}] \NC 2x + 3y \NC{} = 10 \NR \NC 3x + 2y \NC{} = 5 \NR \stopmatrix \stopformula
\stoptext
Both work just fine, but with distance=0pt instead. Thanks! There is only a minor problem with the former one: it's somehow shifted to the left compared with the latter (both in MkII and MkIV). I have no idea why.
The {} after the alignment \NC is useful if the next symbol is something that can be a uniary or binary symbol (eg, + or -). The {} tells tex to treat is as a binary symbol.
Of course - the {} is an "ord" atom for TeX, AFAIR.
If you frequently need something like this, you can use definemathcases/definemathmatrix to define a new environment with appropriate parameters.
Yes; however, I'd still have to use the {} after the \NC...
Aditya
Thank you! -- Marcin Borkowski (http://mbork.pl) Nie mam w ręku miecza, ani karabinu, stoję nieuzbrojony pod murami Babilonu. Wzywam pomocy Ducha - Duch przychodzi w ogniu! Wokół zostają tylko gruzy Babilonu! (Korzeń Z Kraju Melchizedeka)
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Dnia Sat, Jan 10, 2009 at 01:15:28PM -0500, Aditya Mahajan napisał(a):
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Hi all,
I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align.
How to do this?
I do not completely understand what you want. Do the following give the desired output.
Sorry;).
\starttext
\startformula \startcases[align={right,left},distance=3pt] \NC 2x + 3y \MC{} = 10 \NR \NC 3x + 2y \MC{} = 5 \NR \stopcases \stopformula
\startformula \startmatrix[align={right,left},distance=3pt,left={\left\{}, right={\right.}] \NC 2x + 3y \NC{} = 10 \NR \NC 3x + 2y \NC{} = 5 \NR \stopmatrix \stopformula
\stoptext
Both work just fine, but with distance=0pt instead. Thanks! There is only a minor problem with the former one: it's somehow shifted to the left compared with the latter (both in MkII and MkIV). I have no idea why.
mathcases has a numberdistance key, which adds some width at the end of each row. You can set numberdistance to zero.
The {} after the alignment \NC is useful if the next symbol is something that can be a uniary or binary symbol (eg, + or -). The {} tells tex to treat is as a binary symbol.
Of course - the {} is an "ord" atom for TeX, AFAIR.
If you frequently need something like this, you can use definemathcases/definemathmatrix to define a new environment with appropriate parameters.
Yes; however, I'd still have to use the {} after the \NC...
Yes. You can define something like \OC (ord column) to be \NC{}. Aditya
Dnia Sat, Jan 10, 2009 at 07:14:58PM -0500, Aditya Mahajan napisał(a):
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Hi all,
I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align.
How to do this?
(answers cut) Thank you very much. But one thing still puzzles me: the vertical distance between the cases. How to increase it? (Shouldn't there be a parameter for this? But I couldn't find one...) Thanks in advance -- Marcin Borkowski (http://mbork.pl) Walka trwa! Nie przeciw ciału i krwi, lecz przeciw złym siłom. Naszym ogniem Miłość Boga, naszym mieczem wierność Jego! Walka trwa! (Izaiash)
On Tue, 20 Jan 2009, Marcin Borkowski wrote:
Dnia Sat, Jan 10, 2009 at 07:14:58PM -0500, Aditya Mahajan napisał(a):
On Sat, 10 Jan 2009, Marcin Borkowski wrote:
Hi all,
I'd like to typeset a system of simultaneous equations. I want it to have a brace on the left (like "cases"), but inside I want it to have two columns aligned like "align". Also, I'd like to have the vertical space between the equations be small (like in cases), not so big as in align.
How to do this?
(answers cut)
Thank you very much. But one thing still puzzles me: the vertical distance between the cases. How to increase it? (Shouldn't there be a parameter for this? But I couldn't find one...)
For matrix, the current definition works hard so that you cannot change vertical distance. For simultaneous equations, you need a math strucutre which ConTeXt does not provide.
From what I understand amsmath hasthere are three kinds of math "strucures"
1. Outer display structures (equation, align, gather, and multline) 2. Inner display structures (aligned, gathered, and multlined (provided by mathtools package)) 3. Inner inline structures (matrix, cases, etc). The first two display structures have \displaystyle set and have "loose" spacing. The last inline structure has no \displaystyle set and has "tight" spacing. So, what you need for simultaneous equations is something from class 2 with the ability to put a brace on the left (empheq package in latex allows you to do this with aligned, etc). Currently, ConTeXt does not provide anything of class 2. It is easy to provide it (one just needs to copy the definitions of mathalign but not set the width of hbox to be textwidth), but everytime I start working on it I get distracted by the bigger problem---ConTeXt is not as good as it can be for outer display. Aditya
participants (2)
-
Aditya Mahajan
-
Marcin Borkowski