Hi Otared, Thank you very much. I used your example to write the following macros. They are far from perfect but suit my needs. A few days ago, Hans warned not to use \noalign in LMTX, so I used the trick he gave to the list even if I don't really understand it. === LMTX version ============ %D \macros{HR, VR} %D \type{\HR} draws a horizontal rule between two rows of a matrix %D \type{\VR} is used in place of \type{\NC} to draw a vertical rule between two columns of a matrix %D each macro takes an optional parameter giving the rule dimensions %D Example %D \type{\startmatrix \NC A \VR[depth 2mm] B \NR \HR[height 0.6pt] \NC C \VR D \NR \stopmatrix} \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} =========================== === MkIV version ============ %D \macros{HR, VR} %D \type{\HR} draws a horizontal rule between two rows of a matrix %D \type{\VR} is used in place of \type{\NC} to draw a vertical rule between two columns of a matrix %D it takes an optional parameter giving the rule dimensions %D Example %D \type{\startmatrix \NC A \VR[depth 2mm] B \NR \HR \NC C \VR D \NR \stopmatrix} \def\HR{\noalign{\hrule}} \def\VR{\dosingleempty\doVR} \def\doVR[#1]{\NC \hskip-0.5em \vrule #1 \hskip-0.5em \NC} =========================== For the MkIV version I haven't been able to add an optional parameter to \HR the code \def\HR{\dosingleempty\doHR} \def\doHR[#1]{\noalign{\hrule #1}} complains about "Misplaced \noalign" Best regards, > Le 26 nov. 2020 à 13:40, Otared Kavian a écrit : > > Hi Jean-Philippe, > > The following is better than the one I sent earlier: > > \definemathmatrix[mymatrix] > [left={\left(\,}, > right={\ \right)}] > > \starttext > \startformula > \startmymatrix > \NC A \NC\hskip-.5em \vrule \NC\hskip-.5em B \NR > \noalign{\hrule} > \NC C \NC \hskip-.5em\vrule \NC \hskip-.5em D \NR > \stopmymatrix > \stopformula > \stoptext > > Best regards: Otared K. > >> On 26 Nov 2020, at 10:19, Jean-Philippe Rey wrote: >> >> Dear list, >> >> I would like to draw matrices with internal lines as can be done with LaTeX (cf pdf output) : >> >> ======================== >> \documentclass{article} >> \begin{document} >> $M =\left( \begin{array}{c|c} >> A & B \\ >> \hline >> C & D \\ >> \end{array} \right)$ >> \end{document} >> ======================== >> >> I didn't find out how to use mathmatrix to achieve this. My best result to date is >> >> ======================== >> \starttext >> $M = \left( \bTABLE[frame=off] >> \bTR >> \bTD[rightframe=on, bottomframe=on] $A$ \eTD >> \bTD[bottomframe=on] $B$ \eTD >> \eTR\bTR >> \bTD[rightframe=on] $C$ \eTD >> \bTD $D$ \eTD >> \eTR >> \eTABLE \right)$ >> \stoptext >> ======================== >> >> The code is rather ugly, and I get a spurious space at the bottom of the table. >> >> Any hints? >> >> Thank you, -- Jean-Philippe Rey jean-philippe.rey@centralesupelec.fr 91192 Gif-sur-Yvette Cedex - France Empreinte PGP : 807A 5B2C 69E4 D4B5 783A 428A 1B5E E83E 261B BF51