[NTG-context] mathmatrix and internal lines
Hans Hagen
j.hagen at xs4all.nl
Thu Nov 26 23:23:57 CET 2020
On 11/26/2020 8:43 PM, Otared Kavian wrote:
> Hi Jean-Philippe,
>
> A few weeks ago I saw briefly the discussion about Hans' message regarding \noalign and the the new definitions of \HR and \VR that you are sending. Indeed your solution works great !
> Just for the case other people may have the same question about writing block matrix, I copy below the whole example which can be found later in the mail archive.
> (For mkiv, I don't know how to do the same thing…).
The \noaligned permits a \protected definition. Otherwise one has to do
something
\def\VR{\noalign\bgroup
<command that picks up [#1]
that command then does the rule and ends the noalign. Also, that one
cannot be \protected (a pitty in case one uses \expanded or so)
So ... a multistep approach. Plenty of that in mkiv.
> %%% begin block-matrix.tex
> % in LMTX defining \HR and \VR to create block matrices:
> \pushoverloadmode
> \noaligned\tolerant\protected\def\HR[#1]{\noalign{\hrule #1}}
> \popoverloadmode
>
> \def\VR{\dosingleempty\doVR}
> \def\doVR[#1]{\NC \hskip-0.5em \vrule #1 \hskip-0.5em \NC}
given the \HR definition that should be
\tolerant\protected\def\VR[#1]{\NC ...\NC}
> \definemathmatrix[mymatrix]
> [left={\left(\,},
> right={\, \right)}]
>
> \starttext
>
> \startformula
> \startmymatrix
> \NC A \VR B \NR
> \HR
> \NC C \VR D \NR
> \stopmymatrix
> \stopformula
>
> \stoptext
Anyway, a feature like this should be in sync with other table
mechanisms, so
\definemathmatrix
[mymatrix]
[left={\left\lparent\thinspace},
right={\thinspace\right\rparent}]
\starttext
\startformula
\startmymatrix
\NC A \VL B \NR
\HL
\NC C \VL D \NR
\stopmymatrix
\stopformula
\startformula
\startmymatrix
\NC A \VL[3,green] B \NR
\HL[10,red]
\NC C \VL D \NR
\stopmymatrix
\stopformula
\stoptext
A bit more code needed but the next upload will have it. Of course you
have to wikify it.
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list