Difference between revisions of "Multiline equations"
(23 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
+ | < [[Main Page]] | [[Math]] | [[Math with newmat]] | [[MathML]] > | ||
+ | |||
+ | Be sure to also read [http://dl.contextgarden.net/myway/mathalign.pdf Using \startalign and friends] written by Aditya Mahajan. | ||
+ | |||
== Basic Alignment == | == Basic Alignment == | ||
Line 5: | Line 9: | ||
* Latex style | * Latex style | ||
− | < | + | |
+ | <context source=yes text="Note the \\ in the last line, above. This appears as follows:"> | ||
\startformula \startalign | \startformula \startalign | ||
v &= u + at \\ | v &= u + at \\ | ||
h &= ut + \frac12 gt^2 \\ | h &= ut + \frac12 gt^2 \\ | ||
\stopalign \stopformula | \stopalign \stopformula | ||
− | </ | + | </context> |
− | |||
− | |||
− | * Context | + | * Context Style |
− | < | + | <context source=yes> |
\startformula \startalign | \startformula \startalign | ||
\NC v \NC = u + at \NR | \NC v \NC = u + at \NR | ||
− | \NC h \NC= ut + \frac12 gt^2 \NR | + | \NC h \NC = ut + \frac12 gt^2 \NR |
\stopalign \stopformula | \stopalign \stopformula | ||
− | </ | + | </context> |
+ | |||
+ | (The examples here will focus on the context style, having two styles can be confusing --[[User:Adityam| Aditya ]] ) | ||
+ | |||
+ | == Changing the number of columns == | ||
+ | |||
+ | The above equations were aligned at <code>=</code>. Suppose you also want the <code>+</code> to align. Well, this is simple in context, simply specify the number of columns with <code>\startalign</code> | ||
+ | |||
+ | <context source=yes> | ||
+ | \startformula \startalign[n=3] | ||
+ | \NC v \NC = u \NC+ at \NR | ||
+ | \NC h \NC= ut \NC+ \frac12 gt^2 \NR | ||
+ | \stopalign \stopformula | ||
+ | </context> | ||
+ | |||
+ | == Alignment of each column == | ||
+ | If you want more control over the formatting, and want the middle column to be center aligned, you can do that by | ||
+ | |||
+ | <context source=yes> | ||
+ | \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 | ||
+ | </context> | ||
+ | |||
+ | This mechanism allows fancier alignments like | ||
+ | |||
+ | <context source=yes> | ||
+ | \startformula \startalign[n=4,align={1:left,2:right,3:middle,4:left}] | ||
+ | \NC \text{We have} \quad \NC v \NC = u \NC+ at \NR | ||
+ | \NC \text{and} \NC h \NC= ut \NC+ \frac12 gt^2 \NR | ||
+ | \stopalign \stopformula | ||
+ | </context> | ||
== Working with equation numbering == | == Working with equation numbering == | ||
+ | |||
+ | aligned equations can be numbered by placing a tag after {{cmd|NR}} | ||
+ | |||
+ | <context source=yes> | ||
+ | \setuplayout[scale=0.8,width=13cm] | ||
+ | \placeformula \startformula \startalign | ||
+ | \NC v \NC = u + at \NR[eq:v] | ||
+ | \NC h \NC = ut + \frac12 gt^2 \NR[eq:h] | ||
+ | \stopalign \stopformula | ||
+ | Equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation~(\in[eq:h]) tells the distance travelled in time~$t$. | ||
+ | </context> | ||
+ | |||
+ | The numbering can be changed to a subformula style using {{cmd|placesubformula}} instead of {{cmd|placeformula}} and numbering the subformulas using {{cmd|NR|2=[+][a]}}, {{cmd|NR|2=[+][b]}}, … instead: | ||
+ | |||
+ | <context source=yes> | ||
+ | \setuplayout[scale=0.8,width=13cm] | ||
+ | \placesubformula \startformula \startalign | ||
+ | \NC v \NC = u + at \NR[+][eq:v] | ||
+ | \NC h \NC = ut + \frac12 gt^2 \NR[+][eq:h] | ||
+ | \stopalign \stopformula | ||
+ | Equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation (\in[eq:h]) tells the distance travelled in time~$t$. | ||
+ | </context> | ||
== Changing the number of columns == | == Changing the number of columns == | ||
+ | |||
+ | == Defining new alignment structures == | ||
+ | |||
+ | New alignment can be defined using {{cmd|definemathalignment}}. For example, to emulate <code>gather</code> environment of amsmath, we can use | ||
+ | |||
+ | <context source=yes> | ||
+ | \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 | ||
+ | |||
+ | </context> | ||
== Cases == | == Cases == | ||
+ | |||
+ | Context provides a {{cmd|startmathcases}} {{cmd|stopmathcases}} pair to make it easy to get cases. | ||
+ | |||
+ | <context source=yes text="gives"> | ||
+ | \startformula | ||
+ | \delta_{ij} = | ||
+ | \startmathcases | ||
+ | \NC 1 \NC \text{if } i = j \NR | ||
+ | \NC 0 \NC \text{otherwise} \NR | ||
+ | \stopmathcases | ||
+ | \stopformula | ||
+ | </context> | ||
+ | |||
+ | The cases environment consists of two columns, separated by {{cmd|NC}}. The second column is by default in math mode. To typeset the second column in text mode, use {{cmd|TC}} | ||
+ | |||
+ | <texcode> | ||
+ | \startformula | ||
+ | \delta_{ij} = | ||
+ | \startmathcases | ||
+ | \NC 1 \TC if \m{i = j} \NR | ||
+ | \NC 0 \TC otherwise \NR | ||
+ | \stopmathcases | ||
+ | \stopformula | ||
+ | </texcode> | ||
+ | |||
+ | Each line must end with a {{cmd|NR}}. | ||
== Numbered Cases == | == Numbered Cases == | ||
+ | |||
+ | [[Category:Math]] |
Latest revision as of 09:29, 2 March 2022
< Main Page | Math | Math with newmat | MathML >
Be sure to also read Using \startalign and friends written by Aditya Mahajan.
Contents
Basic Alignment
Two modes of input
- Latex style
\startformula \startalign v &= u + at \\ h &= ut + \frac12 gt^2 \\ \stopalign \stopformula
Note the \\ in the last line, above. This appears as follows:
- Context Style
\startformula \startalign \NC v \NC = u + at \NR \NC h \NC = ut + \frac12 gt^2 \NR \stopalign \stopformula
(The examples here will focus on the context style, having two styles can be confusing -- Aditya )
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
Alignment of each column
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:left,2:right,3:middle,4:left}] \NC \text{We have} \quad \NC v \NC = u \NC+ at \NR \NC \text{and} \NC h \NC= ut \NC+ \frac12 gt^2 \NR \stopalign \stopformula
Working with equation numbering
aligned equations can be numbered by placing a tag after \NR
\setuplayout[scale=0.8,width=13cm] \placeformula \startformula \startalign \NC v \NC = u + at \NR[eq:v] \NC h \NC = ut + \frac12 gt^2 \NR[eq:h] \stopalign \stopformula Equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation~(\in[eq:h]) tells the distance travelled in time~$t$.
The numbering can be changed to a subformula style using \placesubformula instead of \placeformula and numbering the subformulas using \NR[+][a], \NR[+][b], … instead:
\setuplayout[scale=0.8,width=13cm] \placesubformula \startformula \startalign \NC v \NC = u + at \NR[+][eq:v] \NC h \NC = ut + \frac12 gt^2 \NR[+][eq:h] \stopalign \stopformula Equation~(\in[eq:v]) tells the final velocity after time~$t$ and equation (\in[eq:h]) tells the distance travelled in time~$t$.
Changing the number of columns
Defining new alignment structures
New alignment can be defined using \definemathalignment. For 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.
\startformula \delta_{ij} = \startmathcases \NC 1 \NC \text{if } i = j \NR \NC 0 \NC \text{otherwise} \NR \stopmathcases \stopformula
gives
The cases environment consists of two columns, separated by \NC. 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
Each line must end with a \NR.