Problem with \definemathmatrix
Hello, This macro that is not mine worked very well. I just tested the following file and there is a problem. Thank you Fabrice \definemathmatrix [pmatrix] [left={\left(\,},right={\,\right)}] \starttext \math{M^3=\startpmatrix \NC 2 \NC 3 \NC 6 \NC 4 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 3 \NC 0 \NC 1 \NC 1 \NC 2 \NC 3 \NC 6 \NC 4 \NR \NC 6 \NC 1 \NC 4 \NC 4 \NC 4 \NC 9 \NC 10 \NC 6 \NR \NC 4 \NC 1 \NC 4 \NC 4 \NC 5 \NC 8 \NC 8 \NC 3 \NR \NC 2 \NC 2 \NC 4 \NC 5 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 7 \NC 3 \NC 9 \NC 8 \NC 7 \NC 8 \NC 10 \NC 3 \NR \NC 3 \NC 6 \NC 10 \NC 8 \NC 3 \NC 10 \NC 4 \NC 1 \NR \NC 1 \NC 4 \NC 6 \NC 3 \NC 1 \NC 3 \NC 1 \NC 0 \NR \stoppmatrix} \stoptext
Hi Fabrice, I think the problem comes from a blank line in your matrix (after your last line of entries in your matrix). The following works fine for me: \definemathmatrix [pmatrix] [left={\left(\,},right={\,\right)}] \starttext \startformula A = \startpmatrix \NC 11 \NC 12 \NR \NC 21 \NC 22 \NR \stoppmatrix \stopformula \startformula M^3 = \startpmatrix \NC 2 \NC 3 \NC 6 \NC 4 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 3 \NC 0 \NC 1 \NC 1 \NC 2 \NC 3 \NC 6 \NC 4 \NR \NC 6 \NC 1 \NC 4 \NC 4 \NC 4 \NC 9 \NC 10 \NC 6 \NR \NC 4 \NC 1 \NC 4 \NC 4 \NC 5 \NC 8 \NC 8 \NC 3 \NR \NC 2 \NC 2 \NC 4 \NC 5 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 7 \NC 3 \NC 9 \NC 8 \NC 7 \NC 8 \NC 10 \NC 3 \NR \NC 3 \NC 6 \NC 10 \NC 8 \NC 3 \NC 10 \NC 4 \NC 1 \NR \NC 1 \NC 4 \NC 6 \NC 3 \NC 1 \NC 3 \NC 1 \NC 0 \NR \stoppmatrix \stopformula \stoptext Best regards: OK
On 17 Jan 2018, at 19:19, Fabrice Couvreur
wrote: Hello, This macro that is not mine worked very well. I just tested the following file and there is a problem. Thank you Fabrice
\definemathmatrix [pmatrix] [left={\left(\,},right={\,\right)}]
\starttext
\math{M^3=\startpmatrix \NC 2 \NC 3 \NC 6 \NC 4 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 3 \NC 0 \NC 1 \NC 1 \NC 2 \NC 3 \NC 6 \NC 4 \NR \NC 6 \NC 1 \NC 4 \NC 4 \NC 4 \NC 9 \NC 10 \NC 6 \NR \NC 4 \NC 1 \NC 4 \NC 4 \NC 5 \NC 8 \NC 8 \NC 3 \NR \NC 2 \NC 2 \NC 4 \NC 5 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 7 \NC 3 \NC 9 \NC 8 \NC 7 \NC 8 \NC 10 \NC 3 \NR \NC 3 \NC 6 \NC 10 \NC 8 \NC 3 \NC 10 \NC 4 \NC 1 \NR \NC 1 \NC 4 \NC 6 \NC 3 \NC 1 \NC 3 \NC 1 \NC 0 \NR
\stoppmatrix}
\stoptext ___________________________________________________________________________________ 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 ___________________________________________________________________________________
On Wed, 17 Jan 2018, Fabrice Couvreur wrote:
Hello, This macro that is not mine worked very well. I just tested the following file and there is a problem.
Otared has already answered your question but ...
\math{M^3=\startpmatrix \NC 2 \NC 3 \NC 6 \NC 4 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 3 \NC 0 \NC 1 \NC 1 \NC 2 \NC 3 \NC 6 \NC 4 \NR \NC 6 \NC 1 \NC 4 \NC 4 \NC 4 \NC 9 \NC 10 \NC 6 \NR \NC 4 \NC 1 \NC 4 \NC 4 \NC 5 \NC 8 \NC 8 \NC 3 \NR \NC 2 \NC 2 \NC 4 \NC 5 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 7 \NC 3 \NC 9 \NC 8 \NC 7 \NC 8 \NC 10 \NC 3 \NR \NC 3 \NC 6 \NC 10 \NC 8 \NC 3 \NC 10 \NC 4 \NC 1 \NR \NC 1 \NC 4 \NC 6 \NC 3 \NC 1 \NC 3 \NC 1 \NC 0 \NR
\stoppmatrix}
If you type a lot of such matrices, you might find the attached module interesting. Using it you can use matlab-like syntax for writing matrices: \usemodule[simplematrix] \definesimplematrix[MATRIX][fence=parenthesis, align=middle] \starttext $\MATRIX{1,2,3,4;5,6,7,8;9,10,11,12}$ \stoptext Aditya
Hello,
Thank you.
@Adytan This module is not part of context standalone, in which directory
is it better to put it ?
Fabrice
2018-01-18 4:53 GMT+01:00 Aditya Mahajan
On Wed, 17 Jan 2018, Fabrice Couvreur wrote:
Hello,
This macro that is not mine worked very well. I just tested the following file and there is a problem.
Otared has already answered your question but ...
\math{M^3=\startpmatrix
\NC 2 \NC 3 \NC 6 \NC 4 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 3 \NC 0 \NC 1 \NC 1 \NC 2 \NC 3 \NC 6 \NC 4 \NR \NC 6 \NC 1 \NC 4 \NC 4 \NC 4 \NC 9 \NC 10 \NC 6 \NR \NC 4 \NC 1 \NC 4 \NC 4 \NC 5 \NC 8 \NC 8 \NC 3 \NR \NC 2 \NC 2 \NC 4 \NC 5 \NC 2 \NC 7 \NC 3 \NC 1 \NR \NC 7 \NC 3 \NC 9 \NC 8 \NC 7 \NC 8 \NC 10 \NC 3 \NR \NC 3 \NC 6 \NC 10 \NC 8 \NC 3 \NC 10 \NC 4 \NC 1 \NR \NC 1 \NC 4 \NC 6 \NC 3 \NC 1 \NC 3 \NC 1 \NC 0 \NR
\stoppmatrix}
If you type a lot of such matrices, you might find the attached module interesting. Using it you can use matlab-like syntax for writing matrices:
\usemodule[simplematrix] \definesimplematrix[MATRIX][fence=parenthesis, align=middle]
\starttext $\MATRIX{1,2,3,4;5,6,7,8;9,10,11,12}$ \stoptext
Aditya ____________________________________________________________ _______________________ 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 ____________________________________________________________ _______________________
On Thu, 18 Jan 2018, Fabrice Couvreur wrote:
Hello, Thank you. @Adytan This module is not part of context standalone, in which directory is it better to put it ? Fabrice
You can put it any directory where ConTeXt can find it. I usually use $TEXMFHOME/tex/context/personal/ On most systems, $TEXMFHOME is set to ~/texmf. Aditya
Very great job, I will save a lot of time !
Fabrice
2018-01-18 19:12 GMT+01:00 Aditya Mahajan
On Thu, 18 Jan 2018, Fabrice Couvreur wrote:
Hello,
Thank you. @Adytan This module is not part of context standalone, in which directory is it better to put it ? Fabrice
You can put it any directory where ConTeXt can find it. I usually use
$TEXMFHOME/tex/context/personal/
On most systems, $TEXMFHOME is set to ~/texmf.
Aditya ____________________________________________________________ _______________________ 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/list info/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ____________________________________________________________ _______________________
Hi Aditya, Thanks for sharing this nice module, it is really useful, especially when making documents for students while using Matlab or Scilab. There is also in the distribution the module m-matrix.mkiv written by Hans and Jeong Dalyoung, which allows to manipulate matrices. Maybe one should add the functionality of your module to the one in the distribution and somehow unify their environments. Best regards: OK
On 18 Jan 2018, at 04:53, Aditya Mahajan
wrote: […] If you type a lot of such matrices, you might find the attached module interesting. Using it you can use matlab-like syntax for writing matrices:
\usemodule[simplematrix] \definesimplematrix[MATRIX][fence=parenthesis, align=middle]
\starttext $\MATRIX{1,2,3,4;5,6,7,8;9,10,11,12}$ \stoptext
Aditya
___________________________________________________________________________________ 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 ___________________________________________________________________________________
On 1/18/2018 9:13 PM, Otared Kavian wrote:
Hi Aditya,
Thanks for sharing this nice module, it is really useful, especially when making documents for students while using Matlab or Scilab.
Nice indeed.
There is also in the distribution the module m-matrix.mkiv written by Hans and Jeong Dalyoung, which allows to manipulate matrices. Maybe one should add the functionality of your module to the one in the distribution and somehow unify their environments.
I'll add this to the core: \unprotect %D The following code is derived from Aditya's simplematrix prototype but %D adapted to regular mathmatrices (which saves some code so it can go into %D the core): \newtoks\t_math_matrix \def\math_matrix_simple_row#1% {\rawprocesscommalist[#1]\math_matrix_simple_col \toksapp\t_math_matrix{\NR}} \def\math_matrix_simple_col#1% {\toksapp\t_math_matrix{\NC#1}} \unexpanded\def\math_matrix_simple[#1][#2]#3% {\begingroup \edef\currentmathmatrix{#1}% \ifsecondargument \setupcurrentmathmatrix[#2]% \fi \t_math_matrix\emptytoks \processlist[];\math_matrix_simple_row[#3]% \math_matrix_start\currentmathmatrix \the\t_math_matrix \math_matrix_stop \endgroup} %D We hook it into the normal mathmatrix code: \ifdefined\c!simplecommand\else\def\c!simplecommand{simplecommand}\fi \appendtoks \edef\p_simplecommand{\mathmatrixparameter\c!simplecommand}% \ifx\p_simplecommand\empty\else \setuevalue{\p_simplecommand}{\dodoubleempty\math_matrix_simple[\currentmathmatrix]}% \fi \to \everydefinemathmatrix %D And predefine some matrices: \definemathmatrix[matrix:parentheses][\c!left={\left(\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right)},\c!align=\v!middle] \definemathmatrix[matrix:brackets] [\c!left={\left[\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right]},\c!align=\v!middle] \definemathmatrix[matrix:bars] [\c!left={\left|\mskip\thinmuskip},\c!right={\mskip\thinmuskip\right|},\c!align=\v!middle] \definemathmatrix[thematrix][matrix:parentheses][\c!simplecommand=thematrix] \protect \starttext $\thematrix{1,2,3,4;5,6,7,8;9,10,11,12}$ $\startthematrix \NC 1\NC 2\NC 3\NC 4\NR \NC 5\NC 6\NC 7\NC 8\NR \NC 9\NC10\NC11\NC12\NR \stopthematrix$ \stoptext
Best regards: OK
On 18 Jan 2018, at 04:53, Aditya Mahajan
wrote: […] If you type a lot of such matrices, you might find the attached module interesting. Using it you can use matlab-like syntax for writing matrices:
\usemodule[simplematrix] \definesimplematrix[MATRIX][fence=parenthesis, align=middle]
\starttext $\MATRIX{1,2,3,4;5,6,7,8;9,10,11,12}$ \stoptext
Aditya
___________________________________________________________________________________ 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 ___________________________________________________________________________________
___________________________________________________________________________________ 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 ___________________________________________________________________________________
-- ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On Thu, 18 Jan 2018, Hans Hagen wrote:
On 1/18/2018 9:13 PM, Otared Kavian wrote:
Hi Aditya,
Thanks for sharing this nice module, it is really useful, especially when making documents for students while using Matlab or Scilab.
Nice indeed.
There is also in the distribution the module m-matrix.mkiv written by Hans and Jeong Dalyoung, which allows to manipulate matrices. Maybe one should add the functionality of your module to the one in the distribution and somehow unify their environments.
I'll add this to the core:
% D We hook it into the normal mathmatrix code:
\ifdefined\c!simplecommand\else\def\c!simplecommand{simplecommand}\fi
\appendtoks \edef\p_simplecommand{\mathmatrixparameter\c!simplecommand}% \ifx\p_simplecommand\empty\else
\setuevalue{\p_simplecommand}{\dodoubleempty\math_matrix_simple[\currentmathmatrix]}% \fi \to \everydefinemathmatrix
Ah, this does make it more direct. Thanks, Aditya
participants (4)
-
Aditya Mahajan
-
Fabrice Couvreur
-
Hans Hagen
-
Otared Kavian