Open main menu

Changes

Created page with "= Defining with {{cmd|definemathmatrix}} = In order to type matrices in math formulas, there is the command {{cmd|definemathmatrix}}. Once a certain type of matrix is defined..."
= Defining with {{cmd|definemathmatrix}} =

In order to type matrices in math formulas, there is the command {{cmd|definemathmatrix}}. Once a certain type of matrix is defined, one can also add a simple command in order to type matrices in a Matlab or Scilab format.

Here are a few examples.

<context source="yes">
\setuplayout[scale=0.8,width=13cm]

\definemathmatrix[pmatrix] % defining matrix with parentheses
[matrix:parentheses]
[simplecommand=pmatrix]

\definemathmatrix[bmatrix] % defining matrix with brackets
[matrix:brackets]
[simplecommand=bmatrix]

\definemathmatrix[determinant] % defining determinant with bars
[matrix:bars]
[simplecommand=thedeterminant]


Let $A$ be the matrix
\startformula
A = \startpmatrix
\NC 2 \NC 3 \NR
\NC 1 \NC 2 \NR
\stoppmatrix
\stopformula

Show that
\startformula
{\rm det}(A) = \startdeterminant
\NC 2 \NC 3 \NR
\NC 1 \NC 2 \NR
\stopdeterminant = 1
\stopformula

Compute the matrix $AB$ where $B$ is the matrix
\startformula
B = \pmatrix{2, -3 ; -1, 2}.
\stopformula

</context>

= Formatting delimiters with <tt>left</tt> and <tt>right</tt> =

It is possible to have different delimiters on the left and on the right. For instance:
<context source = yes >
\definemathmatrix[pvmatrix]
[left={\left(\thinspace},
right={\thinspace\right|}]

\definemathmatrix[rpmatrix]
[left={\left.\thinspace},
right={\thinspace\right]}]

\startformula
\startpvmatrix
\NC 11 \NC 12 \NC 13 \NR
\NC 21 \NC 22 \NC 23 \NR
\NC 31 \NC 32 \NC 33 \NR
\stoppvmatrix
\startrpmatrix
\NC 0 \NR
\NC 1 \NR
\NC 2 \NR
\stoprpmatrix
\stopformula

</context>

= Block matrices with vertical and/or horizontal lines =

In ConTeXt LMTX beginning version 2020-11-27, it is possible to create « block » matrices where the blocks are separated by vertical or horizontal lines (respectively {{cmd|VL}} and {{cmd|HL}}). For instance the above example can be typeset more easily by the following :

<context source = yes>
\definemathmatrix[mymatrix]
[left={\left\lparent\thinspace}, % instead of the left parenthesis, one can use any other fence
right={\thinspace\right\rparent}] % instead of the right parenthesis, one can use any other fence

\starttext
Here is $3 \times 3$ matrix with a column added to it
\startformula
\startmymatrix
\NC 11 \NC 12 \NC 13 \VL 0 \NR
\NC 21 \NC 22 \NC 23 \VL 1 \NR
\NC 31 \NC 32 \NC 33 \VL 2 \NR
\stopmymatrix
\stopformula
Here is a block matrix:
\startformula
\startmymatrix
\NC A \VL B \NR
\HL
\NC C \VL D \NR
\stopmymatrix
\stopformula
</context>

== Formatting lines ==

The two commands {{cmd|VL}} and {{cmd|HL}} take an optional parameter which defines the thickness of the rule and its color. So {{cmd|HL|[3,red]}} will produce a red horizontal rule three times thicker than the default matrix rule. The rule thickness for a specific matrix is defined with the {{code|1=[rulethickness=]}} parameter of {{cmd|definemathmatrix}}.

<context source=yes>
\definemathmatrix[mymatrix][matrix:parentheses][rulethickness=2pt]

\starttext
\startformula
\startmymatrix
\NC A \VL[3,green] B \NR
\HL[10,red]
\NC C \VL D \NR
\stopmymatrix
\stopformula
</context>

== Other formatting example ==

<context source="yes">
\definemathmatrix[mymatrix][matrix:parentheses]


Weird matrix
\startformula
\startmymatrix
\NC A \VL B \NR
\HL[red]
\NC C \NC D \NR
\stopmymatrix
\stopformula
</context>

<context source="yes">
\definemathmatrix[mymatrix][matrix:parentheses]
This allows things like

\startformula
\startmymatrix
\NC A \VL B \NR
\HL
\NC \NC C \NC \NR
\stopmymatrix
\stopformula

\startformula
\startmymatrix
\NC A_1 \VL B_1 \NR
\HL
\NC \vdots \VL \vdots \NR
\NC \vdots \NC \vdots \NR % there is probably something from here
\HL
\NC A_n \VL B_n \NR
\stopmymatrix
\stopformula
</context>
1,005

edits