%% This is part of the OpTeX project, see http://petr.olsak.net/optex % Math alignment examples inspired by https://www.ntg.nl/maps/34/06.pdf \fontfam[newcm] \margins/1 a4 (2,2,2,2)cm \hyperlinks\Blue\Blue \refdecl{ \def\Xpos#1#2#3{\sxdef{pos:#1}{{#2}{#3}\_currpage}} } \def\setpos[#1]{\openref\pdfsavepos \_ewref\Xpos{{#1}\unexpanded{{\the\pdflastxpos}{\the\pdflastypos}}}} \def\posx [#1]{\_ea \posi \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}sp} \def\posy [#1]{\_ea \posii \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}sp} \def\pospg[#1]{\_ea \posiii \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}} \def\posi #1#2#3#4{#1} \def\posii #1#2#3#4{#2} \def\posiii #1#2#3#4{#3} \newcount\tomarginno \def\toright#1{\_incr\tomarginno {\setpos[tr:\the\tomarginno]% \rlap{\kern-\posx[tr:\the\tomarginno]\kern\hoffset\kern\hsize\llap{#1}}}} \def\toleft#1{\_incr\tomarginno {\setpos[tr:\the\tomarginno]% \rlap{\kern-\posx[tr:\the\tomarginno]\kern\hoffset\rlap{#1}}}} \def\eqm{\toright\eqmark} \def\\{\begingroup \_setverb \obeylines \scanlatex } \def\scanlatex#1//{\tt #1\endgroup \scanoptex} \long\def\scanoptex#1$${\begingroup \_setverb \obeylines \scanoptexA } \ea\def\ea\scanoptexA\ea#\ea1\detokenize{$$}{\bigskip \tt \detokenize{$$}#1\detokenize{$$}\endgroup $$\catcode`\^^M=9 \scantextokens{#1}$$ \bigskip } \tit Math alignment examples The document \url{https://www.ntg.nl/maps/34/06.pdf} shows examples how to do special math alignments in display mode in \ConTeXt/ (and in \LaTeX/ for comparison). We present the same examples here. They are created in \OpTeX/ and the \LaTeX/ source is shown for comparison. Note that several examples here use the macro \code{\\eqm} for placing an equation mark. The macro is defined~by \begtt \def\eqm{\toright\eqmark} \endtt % and the \code{\\toright} macro is defined in \ulink[http://petr.olsak.net/optex/optex-tricks.html#torighteq]{\OpTeX/ trick 0028} which is based on \ulink[http://petr.olsak.net/optex/optex-tricks.html#setpos]{\OpTeX/ trick 0020}. I.e. the following macros are used here: \begtt \refdecl{ \def\Xpos#1#2#3{\sxdef{pos:#1}{{#2}{#3}\_currpage}} } \def\setpos[#1]{\openref\pdfsavepos \_ewref\Xpos{{#1}\unexpanded{{\the\pdflastxpos}{\the\pdflastypos}}}} \def\posx [#1]{\_ea \posi \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}sp} \def\posy [#1]{\_ea \posii \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}sp} \def\pospg[#1]{\_ea \posiii \romannumeral-`\.\trycs{pos:#1}{{0}{0}{0}{0}}} \def\posi #1#2#3#4{#1} \def\posii #1#2#3#4{#2} \def\posiii #1#2#3#4{#3} \newcount\tomarginno \def\toright#1{\_incr\tomarginno {\setpos[tr:\the\tomarginno]% \rlap{\kern-\posx[tr:\the\tomarginno]\kern\hoffset\kern\hsize\llap{#1}}}} \def\toleft#1{\_incr\tomarginno {\setpos[tr:\the\tomarginno]% \rlap{\kern-\posx[tr:\the\tomarginno]\kern\hoffset\rlap{#1}}}} \endtt % and we have to run \TeX/ twice. \notoc\nonum\sec Contents \centerline{\vbox{\hsize=.5\hsize \maketoc }} \vfil\break \let\_firstnoindent=\relax \mathsboff \catcode`\_=12 \everytable{\catcode`\_=11} \sec Gather \\ \begin{gather} v = u + at, \\ d = ut + \frac12 at^2. \end{gather} // $$ \displaylines{ v = u + at, \eqm \cr d = ut + {1\over2} at^2. \eqm } $$ \sec Left gather \\ \begin{align} & v = u + at, \\ & d = ut + \frac12 at^2. \end{align} // $$ \eqalignno{ & v = u + at, & \eqmark \cr & d = ut + {1\over2} at^2. & \eqmark } $$ \sec Right gather \\ \begin{align} v = u + at , & \\ d = ut + \frac12 atˆ2. & \end{align} // $$ \eqalignno{ v = u + at, && \eqmark \cr d = ut + {1\over2} at^2. && \eqmark } $$ \sec Align \\ \begin{align} v &= u + at, \\ d &= ut + \frac12 at^2. \end{align} // $$ \eqalignno{ v &= u + at, & \eqmark \cr d &= ut + {1\over2} at^2. & \eqmark } $$ \sec Split \\ \begin{equation} \begin{split} (x+1)^8 ={} & x^8 + 8 x^7 + 28 x^6 + 56 x^5 + 70 x^4 \\ & + 56 x^3 + 28 x^2 + 8 x + 1. \end{split} \end{equation} // $$ \eqalign{ (x+1)^8 = {}& x^8 + 8 x^7 + 28 x^6 + 56 x^5 + 70 x^4 \cr & + 56 x^3 + 28 x^2 + 8 x + 1. } \eqmark $$ \sec Alignat \\ \begin{alignat}{2} \nabla\cdot \mathbf E &= \frac{\rho}{\varepsilon_0}, \qquad & \nabla\times \mathbf E &= -\frac{\partial \mathbf B}{\partial t},\\ \nabla\cdot \mathbf B &= 0, & \nabla\times \mathbf B &= \mu_0{\mathbf j}+\varepsilon_0\mu_0 \frac{\partial \mathbf E}{\partial t}. \end{alignat} // $$ \eqalign{ \nabla\cdot {\bf E} &= {\rho\over\varepsilon_0}, \qquad && \nabla\times {\bf E} &= -{\partial {\bf B}\over\partial t}, \eqm\cr \nabla\cdot {\bf B} &= 0, && \nabla\times {\bf B} &= \mu_0{\bf j}+\varepsilon_0\mu_0 {\partial {\bf E}\over \partial t}. \eqm } $$ \sec Flalign \\ \begin{flalign*} \nabla\cdot \mathbf E &= \frac{\rho}{\varepsilon_0}, & \nabla\times \mathbf E &= -\frac{\partial \mathbf B}{\partial t}.\\ \nabla\cdot \mathbf B &= 0, & \nabla\times \mathbf B &= \mu_0{\mathbf j}+\varepsilon_0\mu_0 \frac{\partial \mathbf E}{\partial t}. \end{flalign*} // $$ \eqspace=10em \eqalign{ \nabla\cdot {\bf E} &= {\rho\over\varepsilon_0}, \qquad && \nabla\times {\bf E} &= -{\partial {\bf B}\over\partial t}, \cr \nabla\cdot {\bf B} &= 0, && \nabla\times {\bf B} &= \mu_0{\bf j}+\varepsilon_0\mu_0 {\partial {\bf E}\over \partial t}. } $$ \sec Intertext \\ \begin{align*} \cos 2\theta &= \cos^2 \theta + \sin^2 \theta \\ \intertext{replace $\sin^2 \theta$ by $1 - \cos^2 \theta$} &= 2\cos^2 \theta - 1 \end{align*} // $$ \eqalignno{ \cos 2\theta &= \cos^2 \theta + \sin^2 \theta \cr \noalign{\hbox{replace $\sin^2 \theta$ by $1 - \cos^2 \theta$}} &= 2\cos^2 \theta - 1 } $$ \sec Linear equations \\ \begin{alignat}{5} x_1 & {} + {}& x_2 &{} + {}& 6x_3 &{} = {}& 170, \\ 3x_1 & {} - {}& 110x_2 &{} - {}& x_3 &{} = {}& 4, \\ 14x_1 & {} + {}& 13x_2 &{} + {}& 10x_3 &{} = {}& 25. \end{alignat} // $$ \thistable{\tablinespace=0pt \tabiteml={${}}\tabitemr={{}$} \tabstrut={\lower1.5ex\vbox to3.5ex{}}} \table{3{rc}r}{ x_1 &+& x_2 &+& 6x_3 &=& 170, \eqm \cr 3x_1 &-& 110x_2 &-& x_3 &=& 4, \eqm \cr 14x_1 &+& 13x_2 &+& 10x_3 &=& 25. \eqm } $$ \sec Matrix and Arrays \\ \begin{equation*} \setlength{\arraycolsep}{1em} \begin{array}{ccc} A & B & C \\ AA & BB & CC \\ AAA & BBB & CCC \end{array} \end{equation*} // $$ \matrix{ A & B & C \cr AA & BB & CC \cr AAA & BBB & CCC } $$ \\ \begin{equation*} \setlength{\arraycolsep}{1em} \begin{array}{lcr} A & B & C \\ AA & BB & CC \\ AAA & BBB & CCC \end{array} \end{equation*} // $$ \thistable{\tabstrut{}\tabiteml={\kern.5em${}}\tabitemr={{}$\kern.5em}} \table{lcr}{ A & B & C \cr AA & BB & CC \cr AAA & BBB & CCC } $$ \sec Pmatrix \\ \begin{equation*} A = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix} \end{equation*} // $$ \pmatrix {1\cr 2\cr 3} $$ \sec Delarray package \\ \begin{equation*} \begin{array}[b]({c}) 1 \\ 2 \\ 3 \end{array} \begin{array}[c]({c}) 1 \\ 2 \\ 3 \end{array} \begin{array}[t]({c}) 1 \\ 2 \\ 3 \end{array} \end{equation*} // $$ \def\mybox#1{\hbox{$\displaystyle{#1}$}} \raise3ex\mybox{\pmatrix {1\cr 2\cr 3}} \pmatrix {1\cr 2\cr 3} \lower3ex\mybox{\pmatrix {1\cr 2\cr 3}} $$ \sec Cases \\ \begin{equation*} |x| = \begin{cases} x, & \text{if $x \ge 0$;} \\ -x, & \text{otherwise.} \end{cases} \end{equation*} // $$ |x| = \cases { x & if $x \ge 0$; \cr -x & otherwise } $$ \\ \begin{equation*} f(x) = \begin{dcases} \int_0ˆx g(y)\,dy, & \text{if $x \ge 0$;} \\ \int_{-x}ˆ0 g(y)\,dy, & \text{otherwise.} \end{dcases} \end{equation*} // $$ \let\ds=\displaystyle f(x) = \cases { \ds \int_0^x g(y)\,dy, & if $x \ge 0$; \cr \noalign{\medskip} \ds \int_{-x}^0 g(y)\,dy, & otherwise. } $$ \end