summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/x-calcmath.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/x-calcmath.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/x-calcmath.mkiv89
1 files changed, 89 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/x-calcmath.mkiv b/Master/texmf-dist/tex/context/base/x-calcmath.mkiv
new file mode 100644
index 00000000000..29bc1af9a32
--- /dev/null
+++ b/Master/texmf-dist/tex/context/base/x-calcmath.mkiv
@@ -0,0 +1,89 @@
+% engine=luatex
+
+%D \module
+%D [ file=m-calcmath,
+%D version=2006.04.24, % 1999.11.06,
+%D title=\CONTEXT\ Modules,
+%D subtitle=Calculator Math,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D Lua code.
+
+\ctxloadluafile{x-calcmath}{}
+
+%D Interface:
+
+\unprotect
+
+\def\inlinecalcmath #1{\mathematics{\ctxlua{calcmath.tex("#1",1)}}}
+\def\displaycalcmath#1{\startformula\ctxlua{calcmath.tex("#1",2)}\stopformula}
+
+\let\calcmath\inlinecalcmath
+
+\let\icm\inlinecalcmath
+\let\dcm\displaycalcmath
+
+\startxmlsetups xml:cam:define
+ \xmlsetsetup {\xmldocument} {cam:*} {*}
+ \xmlsetsetup {\xmldocument} {(icm|dcm)} {cam:*}
+\stopxmlsetups
+
+\xmlregisterns{cam}{calcmath}
+
+\xmlregistersetup{xml:cam:define}
+
+% tex -> lua -> tex -> lua -> tex
+% \mathematics{\ctxlua{calcmath.xml(\!!bs\xmlflush{#1}\!!es,1)}}
+% tex -> lua -> tex
+% \mathematics{\ctxlua{calcmath.xml("#1",1)}}%
+
+\startxmlsetups cam:i
+ \mathematics{\ctxlua{calcmath.xml("#1",1)}}%
+\stopxmlsetups
+
+\startxmlsetups cam:d
+ \startformula\ctxlua{calcmath.xml("#1",2)}\stopformula
+\stopxmlsetups
+
+\startxmlsetups cam:icm
+ \mathematics{\ctxlua{calcmath.xml("#1",1)}}
+\stopxmlsetups
+
+\startxmlsetups cam:dcm
+ \startformula\ctxlua{calcmath.xml("#1",2)}\stopformula
+\stopxmlsetups
+
+\protect \endinput
+
+\starttext
+
+% \calcmath{sin(x) + x^2 + x^(1+x) + 1/x^2 + mean(x+mean(y))}
+% \calcmath{int(a,b,c)}
+% \calcmath{(1+x)/(1+x) + (1+x)/(1+(1+x)/(1+x))}
+% \calcmath{10E-2}
+% \calcmath{(1+x)/x}
+% \calcmath{(1+x)/12}
+% \calcmath{(1+x)/-12}
+% \calcmath{1/-12}
+% \calcmath{12x/(1+x)}
+% \calcmath{exp(x+exp(x+1))}
+% \calcmath{abs(x+abs(x+1)) + pi + inf}
+% \calcmath{Dx Dy}
+% \calcmath{D(x+D(y))}
+% \calcmath{Df(x)}
+% \calcmath{g(x)}
+
+\calcmath{sqrt(sin^2(x)+cos^2(x))}
+
+\startXMLdata
+test <icm>sqrt(sin^2(x)+cos^2(x))</icm> test
+test <dcm>sqrt(sin^2(x)+cos^2(x))</dcm> test
+\stopXMLdata
+
+\stoptext