Myway on using mathalign
Hi Aditya, I read you MyWay document on using \startalign and I was interested in section 4.2 numbering subformula's Everything works fine as stated in your nice document. One thing I want to do with a set of subformula's is to reference the main formula but still subnumbering the equations like \starttext \incrementnumber[formula] \placesubformula \startformula \startalign \NC div \vec{E} \NC = \epsilon_{0}^{-1} \rho \NR[eqn1:A][a] \NC rot \vec{E} \NC = 0 \NR \NC div \vec{B} \NC = 0 \NR[eqn1:B][b] \NC rot \vec{B} \NC = \mu_{0} \vec{j} \NR \stopalign \stopformula See *\in[eqn1] *for the static Maxwell equations, where we are going to examine \in[eqn1:A] a bit further .... \stoptext Hope you can help Thanks Wim
On Wed, 5 Apr 2006, WN wrote:
One thing I want to do with a set of subformula's is to reference the main formula but still subnumbering the equations like
Try this. Warning: I do not know everything that is happening here. There may be some unexpected side effects. \unprotect \def\placesubformulawithnumber{% \dodoubleempty\doplacesubformulawithnumber} \def\doplacesubformulawithnumber[#1][#2]%#2 gobbles spaces {\iffirstargument \incrementnumber[\v!formula] \makesectionnumber[\v!formula] \rawreference{\s!for}{#1}{\composedsectionnumber} \else \incrementnumber[\v!formula] \fi\placesubformula} \protect
\starttext %% > \incrementnumber[formula] %% > \placesubformula \placesubformulawithnumber[eqn1] %I need to think of a smaller name \startformula \startalign \NC div \vec{E} \NC = \epsilon_{0}^{-1} \rho \NR[eqn1:A][a] \NC rot \vec{E} \NC = 0 \NR \NC div \vec{B} \NC = 0 \NR[eqn1:B][b] \NC rot \vec{B} \NC = \mu_{0} \vec{j} \NR \stopalign \stopformula See *\in[eqn1] *for the static Maxwell equations, where we are going to examine \in[eqn1:A] a bit further .... \stoptext
Also, note that div and rot should be in text font. You should probably do \startmathcollection[default] \definemathcommand [div] [nolop] {\mfunction{div}} \definemathcommand [rot] [nolop] {\mfunction{rot}} \stopmathcollection and use \div \rot etc. HTH, Aditya -- Aditya Mahajan, EECS Systems, University of Michigan http://www.eecs.umich.edu/~adityam || Ph: 7342624008
adityam@umich.edu wrote:
On Wed, 5 Apr 2006, WN wrote:
One thing I want to do with a set of subformula's is to reference the main formula but still subnumbering the equations like
Try this. Warning: I do not know everything that is happening here. There may be some unexpected side effects.
\unprotect \def\placesubformulawithnumber{% \dodoubleempty\doplacesubformulawithnumber}
\def\doplacesubformulawithnumber[#1][#2]%#2 gobbles spaces {\iffirstargument \incrementnumber[\v!formula] \makesectionnumber[\v!formula] \rawreference{\s!for}{#1}{\composedsectionnumber} \else \incrementnumber[\v!formula] \fi\placesubformula} \protect
\starttext %% > \incrementnumber[formula] %% > \placesubformula \placesubformulawithnumber[eqn1] %I need to think of a smaller name \startformula \startalign \NC div \vec{E} \NC = \epsilon_{0}^{-1} \rho \NR[eqn1:A][a] \NC rot \vec{E} \NC = 0 \NR \NC div \vec{B} \NC = 0 \NR[eqn1:B][b] \NC rot \vec{B} \NC = \mu_{0} \vec{j} \NR \stopalign \stopformula See *\in[eqn1] *for the static Maxwell equations, where we are going to examine \in[eqn1:A] a bit further .... \stoptext
Also, note that div and rot should be in text font. You should probably do \startmathcollection[default] \definemathcommand [div] [nolop] {\mfunction{div}} \definemathcommand [rot] [nolop] {\mfunction{rot}} \stopmathcollection
and use \div \rot etc.
HTH, Aditya
Hi Aditya, I tested your solution and it works great. I cannot see any problems in my output. I wish I had your Tex programming skills, I am trying to learn the language myself from the TexBook (D.Knuth) but I still have a long way to go. BTW Thanks for your comment on the div, rot. I indeed defined the div and rot in text font, it is defined in one of my environment settings. Attached my small Context script to confirm your solution Again thanks for your help, Kind regards Wim \unprotect % ========= Aditya code ============ \def\placesubformulawithnumber{% \dodoubleempty\doplacesubformulawithnumber} \def\doplacesubformulawithnumber[#1][#2]%#2 gobbles spaces {\iffirstargument \incrementnumber[\v!formula] \makesectionnumber[\v!formula] \rawreference{\s!for}{#1}{\composedsectionnumber} \else \incrementnumber[\v!formula] \fi\placesubformula} \startmathcollection[default] \definemathcommand [div] [nolop] {\mfunction{div}} \definemathcommand [rot] [nolop] {\mfunction{rot}} \stopmathcollection % ================================= \definereferenceformat [informula] [left=(, right=), text=] \protect \starttext Some math tests, use of formula/subformula numbering. \placesubformulawithnumber[kem-chapter1-eqn1] \startformula \startalign \NC \div \vec{E} \NC = \frac{\rho}{\epsilon_{0}}\NR[kem-chapter1-eqn1:A][a] \NC \rot \vec{B} \NC = \mu_{0} \:\vec{j} \NR[kem-chapter1-eqn1:B][b] \NC \div \vec{B} \NC = 0 \NR[kem-chapter1-eqn1:C][c] \NC \rot \vec{E} + \frac{\partial \vec{B} }{\partial t} \NC = 0 \NR[kem-chapter1-eqn1:D][d] \stopalign \stopformula See \informula[kem-chapter1-eqn1] or alternatively \informula[kem-chapter1-eqn1:A], \informula[kem-chapter1-eqn1:B],\informula[kem-chapter1-eqn1:C] or \informula[kem-chapter1-eqn1:D]. \blank Another test to check that the formula numbers work as expected \placeformula[kem-chapter-eqn11] \startformula \cases{ \eqalign{ \widehat{\vec{x}} &= - \vec{x} \cr \widehat{t} & = t \cr }} \quad \text{resp.} \quad \cases{\eqalign{ \widehat{\vec{x}} &= \vec{x} \cr \widehat{t} & = -t \cr }} \stopformula \stoptext
On Thu, 6 Apr 2006, WN wrote:
adityam@umich.edu wrote:
On Wed, 5 Apr 2006, WN wrote:
One thing I want to do with a set of subformula's is to reference the main formula but still subnumbering the equations like
Try this. Warning: I do not know everything that is happening here. There may be some unexpected side effects.
\unprotect \def\placesubformulawithnumber{% \dodoubleempty\doplacesubformulawithnumber}
\def\doplacesubformulawithnumber[#1][#2]%#2 gobbles spaces {\iffirstargument \incrementnumber[\v!formula] \makesectionnumber[\v!formula] \rawreference{\s!for}{#1}{\composedsectionnumber} \else \incrementnumber[\v!formula] \fi\placesubformula} \protect
\starttext %% > \incrementnumber[formula] %% > \placesubformula \placesubformulawithnumber[eqn1] %I need to think of a smaller name \startformula \startalign \NC div \vec{E} \NC = \epsilon_{0}^{-1} \rho \NR[eqn1:A][a] \NC rot \vec{E} \NC = 0 \NR \NC div \vec{B} \NC = 0 \NR[eqn1:B][b] \NC rot \vec{B} \NC = \mu_{0} \vec{j} \NR \stopalign \stopformula See *\in[eqn1] *for the static Maxwell equations, where we are going to examine \in[eqn1:A] a bit further .... \stoptext
Also, note that div and rot should be in text font. You should probably do \startmathcollection[default] \definemathcommand [div] [nolop] {\mfunction{div}} \definemathcommand [rot] [nolop] {\mfunction{rot}} \stopmathcollection
and use \div \rot etc.
Hi Aditya, I tested your solution and it works great. I cannot see any problems in my output. I wish I had your Tex programming skills, I am trying to learn the language myself from the TexBook (D.Knuth) but I still have a long way to go.
Well, I do not understand Tex. What I usually do is look at the context source, which is much easier to read than latex internals, and then copy from there, play around a bit, and sometimes things work.
Another test to check that the formula numbers work as expected \placeformula[kem-chapter-eqn11] \startformula \cases{ \eqalign{ \widehat{\vec{x}} &= - \vec{x} \cr \widehat{t} & = t \cr }} \quad \text{resp.} \quad \cases{\eqalign{ \widehat{\vec{x}} &= \vec{x} \cr \widehat{t} & = -t \cr }} \stopformula
How about \definemathmatrix [group] [left={\left\{\,},right={\right.}] \startformula \startgroup \NC \widehat{\vec{x}} \NC= - \vec x \NR \NC \widehat t \NC= t \NR \stopgroup \quad \text{resp} \quad \startgroup \NC \widehat{\vec{x}} \NC= \vec x \NR \NC \widehat t \NC= -t \NR \stopgroup \stopformula There is also startstop cases, but that does not give the correct spacing in this case. May be useful otherwise. \startformula \startcases \NC \widehat{\vec{x}} \MC= - \vec x \NR \NC \widehat t \MC= t \NR \stopcases % Read MC as Math Column, there is also the usual NC % which gives a text column \quad \text{resp} \quad \startcases \NC \widehat{\vec{x}} \MC= \vec x \NR \NC \widehat t \MC= -t \NR \stopcases \stopformula HTH, Aditya
participants (2)
-
Aditya Mahajan
-
WN