Multiline equations

From Wiki
Jump to navigation Jump to search

< Main Page | Math | Math with newmat | MathML >

Be sure to also read 2010 - Using \startalign and friends written by Aditya Mahajan (My Way article).

Basic Alignment with \startalign

\startformula\startalign
 \NC v \NC = u + at \NR
 \NC h \NC = ut + \frac12 gt^2 \NR
\stopalign\stopformula

\NC stands for new column, \NR stands for new row.

Changing the number of columns

The above equations were aligned at =. Suppose you also want the + to align. Well, this is simple in context, simply specify the number of columns with \startalign

\startformula \startalign[n=3]
 \NC v \NC = u  \NC + at \NR
 \NC h \NC = ut \NC + \frac12 gt^2 \NR
\stopalign \stopformula

Equation numbering with \startplaceformula

Aligned equations can be numbered by using \startplaceformula (as usual), and by placing a tag after \NR

\setuplayout[scale=0.8,width=13cm]
\startplaceformula
\startformula \startalign
 \NC v \NC = u + at \NR[eq:v]
 \NC h \NC = ut + \frac12 gt^2 \NR[eq:h]
\stopalign \stopformula 
\stopplaceformula
Equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation~(\in[eq:h]) tells the distance travelled in time~$t$.

Sub-numbering with \startsubformulas

The numbering can be changed to a subformula style by encapsulating \startplaceformula with \startsubformulas :

\setuplayout[scale=0.8,width=13cm]
\startsubformulas[eq:total]
\startplaceformula
\startformula \startalign
 \NC v \NC = u + at \NR[eq:v]
 \NC h \NC = ut + \frac12 gt^2 \NR[eq:h]
\stopalign \stopformula 
\stopplaceformula
\stopsubformulas 

In~(\in[eq:total]), equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation (\in[eq:h]) tells the distance travelled in time~$t$.

Specifying and defining alignment with \definemathalignment

If you want more control over the formatting, and want the middle column to be center aligned, you can do that by

\startformula \startalign[n=3,align={1:right,2:middle,3:left}]
 \NC v \NC = u \NC+ at \NR
 \NC h \NC= ut \NC+ \frac12 gt^2 \NR
\stopalign \stopformula

This mechanism allows fancier alignments like

\startformula \startalign[n=4,align={1:right,2:right,3:middle,4:left}]
 \NC \text{We have} \quad \NC v \NC = u \NC+ at \NR
 \NC \text{and}     \quad \NC h \NC= ut \NC+ \frac12 gt^2 \NR
\stopalign \stopformula


These kind of new alignment can be defined using \definemathalignment.

\definemathalignment
    [demom]
    [n=4,align={1:right,2:right,3:middle,4:left}]

\startformula \startdemom
 \NC \text{We have} \quad \NC v \NC = u \NC+ at \NR
 \NC \text{and}     \quad \NC h \NC= ut \NC+ \frac12 gt^2 \NR
\stopdemom \stopformula

A second example, to emulate gather environment of amsmath, we can use

\definemathalignment
    [gather]
    [n=1,align={1:middle}]

\startformula \startgather
 \NC  ax^2 + bx + c = 0 \NR
 \NC \text{roots} = \frac{ -b \pm \sqrt{b^2 - 4ac}}{2a} \NR
\stopgather \stopformula

Cases

Context provides a \startmathcases \stopmathcases pair to make it easy to get cases. The cases environment consists of two columns, separated by \NC. Each line must end with a \NR.

\startformula
\delta_{ij} =
 \startmathcases
 \NC 1 \NC \text{if } i = j \NR
 \NC 0 \NC \text{otherwise} \NR
 \stopmathcases
\stopformula

gives

The second column is by default in math mode. To typeset the second column in text mode, use \TC:

\startformula
\delta_{ij} =
 \startmathcases
 \NC 1 \TC if \m{i = j} \NR
 \NC 0 \TC otherwise    \NR
 \stopmathcases
\stopformula

gives


TO MERGE

\startformula
 \startcases[align={right,left},distance=3pt]
   \NC 2x + 3y \NC{} = 10 \NR
   \NC 3x + 2y \NC{} = 5,   \NR
 \stopcases
\stopformula

gives


\startformula
 \startcases[align={right,left},distance=3pt]
   \NC 2x + 3y \NC = 10 \NR
   \NC 3x + 2y \NC = 5,   \NR
 \stopcases
\stopformula

gives

TO BE MERGED

There are several built-in commands for displaying mathematical formulas. For instance

\startcases, \stopcases
\startmathmatrix, \stopmathmatrix
\startalign,\stopalign

Each has its own advantage and can be customized: for a thorough understanding of these commands please refer to Aditya Mohajan's excellent user's guide Using \startalign and friends. These commands can be found in core-mat.tex file, which contains most of the core ConTeXt math macros.

This is an example of aligned equations:
\startformula
 \startcases[align={right,left},distance=3pt]
   \NC 2x + 3y \NC{} = 10 \NR
   \NC 3x + 2y \NC{} = 5,   \NR
 \stopcases
\stopformula
and this is another one:
\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

In these structures it is important (well, in the above example it is not important and the result is the same, but I have been told that it is necessary in some other situations...) to notice that the sign "=" is preceded by "\NC{}, since otherwise that sign would be considered as a binary operator and the alignment would be disturbed (at least this is what I guess…Otared K.).

One of the powerful structures in displaying mathematical formulas is the possibility of defining custom maths alignment. For instance the following definition

\definemathmatrix[alignedcases]
		[align={right,left,left},
		distance=3pt,
		left={\left\{},
		right={\right.},
		style=\displaystyle]

creates two new commands,

\startalignedcases, \stopalignedcases:

after which one may use them in a displayed formula as follows:

The following formula is displayed in two lines with an appropriate alignment of the equations:

\startformula
\startalignedcases
 \NC -\Delta u + g(u) \NC{} = f \NC \quad\mbox{in } \Omega\NR
 \NC {\partial u \over \partial {\bf n} } \NC{} = h(u) \NC \quad\mbox{on } \partial\Omega   \NR
\stopalignedcases
\stopformula

Numbered Cases