Thanks so much ! I’ll will add an entry to the wiki. Fabrice. Le 28 août 2017 à 13:29:55, Hans Hagen (pragma@wxs.nl) a écrit: On 8/28/2017 6:33 PM, Fabrice L wrote: > Hi, > > I’have a lot of courses notes in MKII. I’m trying to move to MKIV. I > have a problem that I’m not able to resolve, to make a border matrix > with brackets. In MKII, I was using a macro, found somewhere, which > works great, but no longer works; here is the macro: > > % Border matrix: first line and column are label > \catcode`\@=11\relax > \newdimen\p@renwd > \font\tenex=cmex10 \setbox0=\hbox{\tenex B} \p@renwd=\wd0 > \def\bbordermatrix#1{\begingroup \m@th > \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% > \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil > &&\quad\hfil$##$\hfil\crcr > \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% > #1\crcr\omit\strut\cr}}% > \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% > \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% > \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left[\kern-\wd\@ne > \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% > \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right]$}% > \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} > \catcode`\@=12\relax Such a plain macro needs to be made bodyfotn size aware and such. > but MKIV gives me the error: > > \bbordermatrix #1->\begingroup \m@th > > \setbox \z@ \vbox {\def \cr {\crcr > \noa... > > l.26 i & j & k & l \cr} > > > 16 \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} > > 17 \catcode`\@=12\relax > > > I look for solutions on the list, but did not find anything.Here is a > minimal example: > > \starttext > A border matrix: > \startformula > \bbordermatrix{ > a & b & c & d \cr > e & f & G & h \cr > i & j & k & l \cr} > \stopformula > \stoptext > > As I have in my notes hundreds of such matrix, it is really difficult to > change the input format. > > Do you know, or can you point me, to a solution ? I’m in a dead end.. > Thanks a lot. I'll add this: \unprotect \unexpanded\def\math_border_matrix#1#2#3% adapted plain {\begingroup % \pushmacro\cr % \setbox\scratchbox\hbox\bgroup \mr B% \egroup \scratchdimenone\wd\scratchbox % \scratchdimentwo.2\bodyfontsize % \mathsurround\zeropoint % \setbox\scratchboxone\vbox\bgroup \def\cr{% \crcr \noalign\bgroup \kern\scratchdimentwo \global\let\cr\endline \egroup }% \ialign{% \startimath\alignmark\alignmark\stopimath \hfil \kern\dimexpr\scratchdimentwo+\scratchdimenone\relax \aligntab \thinspace \hfil \startimath\alignmark\alignmark\stopimath \hfil \aligntab \aligntab \quad \hfil \startimath\alignmark\alignmark\stopimath \hfil \crcr \omit \strut \hfil \crcr \noalign{\kern-\baselineskip}% #3\crcr \omit \strut \cr }% \egroup \setbox\scratchboxtwo\vbox\bgroup \unvcopy\scratchboxone \global\setbox\globalscratchbox\lastbox \egroup \setbox\scratchboxtwo\hbox\bgroup \unhbox\globalscratchbox \unskip \global\setbox\globalscratchbox\lastbox \egroup \setbox\scratchboxtwo\hbox\bgroup \startimath \kern\dimexpr\wd\globalscratchbox-\scratchdimenone\relax \left#1\relax \kern-\wd\globalscratchbox \global\setbox\globalscratchbox\vbox\bgroup \box\globalscratchbox \kern\scratchdimentwo \egroup \vcenter\bgroup \kern-\ht\globalscratchbox \unvbox\scratchboxone \kern-\baselineskip \egroup \thinspace \right#2\relax \stopimath \egroup \null \thickspace \vbox\bgroup \kern\ht\globalscratchbox \box\scratchboxtwo \egroup % \popmacro\cr % \endgroup} \unexpanded\def\bordermatrix {\math_border_matrix()} \unexpanded\def\bbordermatrix{\math_border_matrix[]} \protect \starttext A plain border matrix: \startformula \bordermatrix{ a & b & c & d \cr e & f & G & h \cr i & j & k & l \cr} \stopformula \startformula \bbordermatrix{ a & b & c & d \cr e & f & G & h \cr i & j & k & l \cr} \stopformula \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________